total_group_sum.unstack().plot(kind='bar')

मैं अपने बार ग्राफ को प्लॉट करने में सक्षम हूं, हालांकि अब मैं इसके ऊपर एक क्षैतिज माध्य रेखा खींचना चाहता हूं। मैं axhline() का उपयोग करने का प्रयास करता हूं लेकिन मुझे एक त्रुटि मिल रही है:

ValueError: किसी श्रृंखला का सत्य मान अस्पष्ट है। a.empty, a.bool(), a.item(), a.any() या a.all() का प्रयोग करें।

मैं अपने पहले से मौजूद बार ग्राफ पर एक क्षैतिज माध्य रेखा कैसे बना सकता हूँ?

total_group_sum.unstack().plot(kind='bar')

<IMAGE OF BAR GRAPH (I AM NOT ABLE TO POST PHOTO HERE)>

mean = total_group_sum.mean()
plt = total_group_sum.unstack().plot(kind='bar')
plt.axhline(mean)

ValueError: The truth value of a Series is ambiguous. Use a.empty, 
a.bool(), a.item(), a.any() or a.all().

पीएस - मैं ज्यूपिटर नोटबुक का उपयोग कर रहा हूं

1
Kopal Sharma 12 मई 2019, 14:23

1 उत्तर

सबसे बढ़िया उत्तर

इसलिए, मैंने यादृच्छिक डेटा का उपयोग करके, जो मुझे लगता है कि आपकी समस्या है, उसे फिर से बनाने की कोशिश की:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt


np.random.seed(123)
df = pd.DataFrame(
    {
        'a':np.random.randint(0,10,100),
        'b':np.random.randint(0,10,100),
        'c':np.random.randint(0,10,100),}
)

df.groupby('a').sum().unstack().plot(kind='bar')

barplot

मुझे लगता है कि आपकी समस्या यह है कि यह पंक्ति:

mean = df.groupby('a').sum().mean()

प्रत्येक समूह के लिए माध्य लौटाता है:

b    48.7
c    42.1
dtype: float64

फिर, आप कॉल करें

plt.axhline(mean)

जो बिल्कुल एक लाइन प्लॉट करना चाहता है, लेकिन आप इसे कई देते हैं। आप दो काम कर सकते हैं:

  1. या तो, प्रत्येक समूह के लिए माध्य प्लॉट करें:

    for m in mean:
        plt.axhline(m)
    
  2. या, साधनों के माध्य की गणना करें, और प्लॉट करें कि:

    plt.axhline(np.mean(mean))
    
0
warped 12 मई 2019, 12:03