2013-11-26 4 views
20

यह शायद एक मामूली सवाल है, लेकिन मैं matplotlib के साथ बार चार्ट प्लॉट करने और एक्स अक्ष पर घुमावदार पाठ के साथ साजिश करने की कोशिश कर रहा हूं। कोड मैं उपयोग कर रहा हूँ नीचे दिखाया गया है:बार चार्ट (मैटलप्लिब, पायथन) में परेशान सफेद स्थान

fig = plt.figure() 

x_labels_list = [] 

for i in range(0, pow(2, N)): 
    x_labels_list.append(str(f(i))) # The function f() converts i to a binary string 

ax = plt.subplot(111) 
width = 1.0 
bins = map(lambda x: x-width, range(1,pow(2,N)+1)) 
ax.bar(bins, my_data, width=width) 
ax.set_xticks(map(lambda x: x-width/2, range(1,pow(2,N)+1))) 
ax.set_xticklabels(x_labels_list, rotation=90, rotation_mode="anchor", ha="right") 

यह पूरी तरह से काम करता है, लेकिन जैसा कि निम्न चित्र में लाल अंडाकार द्वारा दिखाया मैं एक्स अक्ष के दाईं तरफ एक कष्टप्रद सफेद स्थान प्राप्त,:

enter image description here

क्या आप जानते हैं कि मैं इसे कैसे हटा सकता हूं? अग्रिम में धन्यवाद!

+0

क्या आप एक कामकाजी उदाहरण पोस्ट कर सकते हैं जो आपके द्वारा दिखाए जा रहे आंकड़े को दोहराता है? –

उत्तर

26

डिब्बे की संख्या के साथ plt.xlim() पर कॉल करने का प्रयास करें, उदा।

plt.xlim([0,bins.size]) 

यहाँ एक उदाहरण है:

#make some data 
N = 22 
data = np.random.randint(1,10,N) 
bin = np.arange(N) 
width = 1 

#plot it 
ax = plt.subplot(111) 
ax.bar(bin, data, width, color='r') 
plt.show() 

नहीं plt.xlim() उत्पादन:

no xlim

अब आकार को परिभाषित करने के लिए डिब्बे की संख्या का उपयोग कर plt.xlim साथ यह साजिश:

#plot it 
ax = plt.subplot(111) 
ax.bar(bin, data, width, color='r') 
plt.xlim([0,bin.size]) 
plt.show() 

यह परिणाम:

with xlim

एक बेहतर तरीका हो सकता है, लेकिन यह आप के लिए काम करना चाहिए।

+0

अच्छा, यह पूरी तरह से काम करता है! – user2983638

+17

आप डिब्बे की संख्या निर्दिष्ट करने के बारे में चिंता किए बिना एक ही चीज़ को पूरा करने के लिए 'plt.axis ('tight')' का उपयोग भी कर सकते हैं। इसके अलावा, यदि आप किनारों पर थोड़ी सी जगह पसंद करते हैं, तो x-direction में डेटा रेंज के 5% और वाई-दिशा में 0% के साथ सीमा को पैड करने के लिए 'plt.margins (0.05, 0)' का उपयोग करें। । –

+0

@ जो किंगटन: हाँ, मैंने आपके समाधान का भी प्रयास किया है, और यह काम करता है! – user2983638

संबंधित मुद्दे