लक्ष्य कर रहा हूँ मैं चीजों है कि यहाँ मेरा सुझाव है जब जटिल भूखंडों के साथ काम करने की एक जोड़ी किया है। एक शब्दकोश में कस्टम स्वरूपण को खींचें, जब आप पैरामीटर बदलना चाहते हैं तो यह जीवन को सरल बनाता है - और आप इस शब्दकोश को एकाधिक प्लॉट्स में पास कर सकते हैं। मैंने annotate
पर एक कस्टम फ़ंक्शन भी लिखा है, बोनस के रूप में यह (A,C)
के बीच एनोटेट कर सकता है यदि आप वास्तव में चाहते हैं (मैं अपनी टिप्पणी से खड़ा हूं कि यह सही दृश्य दृष्टिकोण नहीं है)। डेटा बदलने के बाद इसे कुछ ट्वीविंग की आवश्यकता हो सकती है लेकिन इससे आपको सही रास्ते पर रखा जाना चाहिए।
import numpy as np
import matplotlib.pyplot as plt
menMeans = (5, 15, 30, 40)
menStd = (2, 3, 4, 5)
ind = np.arange(4) # the x locations for the groups
width= 0.7
labels = ('A', 'B', 'C', 'D')
# Pull the formatting out here
bar_kwargs = {'width':width,'color':'y','linewidth':2,'zorder':5}
err_kwargs = {'zorder':0,'fmt':None,'linewidth':2,'ecolor':'k'} #for matplotlib >= v1.4 use 'fmt':'none' instead
fig, ax = plt.subplots()
ax.p1 = plt.bar(ind, menMeans, **bar_kwargs)
ax.errs = plt.errorbar(ind, menMeans, yerr=menStd, **err_kwargs)
# Custom function to draw the diff bars
def label_diff(i,j,text,X,Y):
x = (X[i]+X[j])/2
y = 1.1*max(Y[i], Y[j])
dx = abs(X[i]-X[j])
props = {'connectionstyle':'bar','arrowstyle':'-',\
'shrinkA':20,'shrinkB':20,'linewidth':2}
ax.annotate(text, xy=(X[i],y+7), zorder=10)
ax.annotate('', xy=(X[i],y), xytext=(X[j],y), arrowprops=props)
# Call the function
label_diff(0,1,'p=0.0370',ind,menMeans)
label_diff(1,2,'p<0.0001',ind,menMeans)
label_diff(2,3,'p=0.0025',ind,menMeans)
plt.ylim(ymax=60)
plt.xticks(ind, labels, color='k')
plt.show()

केवल तुलना स्थानीय स्तर पर आसन्न किए जाने के लिए कर रहे हैं? यही है, क्या आप केवल '(ए, बी) (बी, सी) (सी, डी)' के बीच का अंतर दिखाना चाहते हैं, लेकिन '(ए, सी)' नहीं? – Hooked
नहीं, मैं सभी संभावित जोड़े के बीच तुलना करना चाहता हूं। – imsc
चार्ट पर इसे दिखाना मुश्किल हो सकता है, खासकर यदि बड़ी संख्या में आइटम हैं। यदि आपके पास एन = 10 है, तो आइटम 45 अलग-अलग जोड़ों की तुलना में हैं! ऐसा लगता है जैसे आप अपने pairwise पी मानों को इसके बजाय मैट्रिक्स पर प्रदर्शित कर सकते हैं। क्या यह काम करेगा? – Hooked