कई "सही" उत्तर यहाँ हैं, लेकिन मैं एक और जोड़ दूंगा क्योंकि मुझे लगता है कि कुछ विवरण कई से बचे हुए हैं। ओपी ने 90 डिग्री रोटेशन के लिए कहा, लेकिन मैं 45 डिग्री तक बदल जाऊंगा क्योंकि जब आप एक कोण का उपयोग करते हैं जो शून्य या 90 नहीं है, तो आपको क्षैतिज संरेखण को भी बदलना चाहिए; अन्यथा आपके लेबल ऑफ-सेंटर और थोड़ा भ्रामक होंगे (और मैं कई लोगों का अनुमान लगा रहा हूं जो यहां आते हैं, कुल्हाड़ियों को 90 के अलावा किसी और चीज में घुमाना चाहते हैं)।
सबसे आसान / कम से कम कोड
विकल्प 1
plt.xticks(rotation=45, ha='right')
जैसा कि पहले उल्लेख किया गया है, यह वांछनीय नहीं हो सकता है यदि आप ऑब्जेक्ट ओरिएंटेड दृष्टिकोण ले लेंगे।
विकल्प 2
एक और तेज़ तरीका (यह तारीख वस्तुओं के लिए अभिप्रेत है, लेकिन किसी भी लेबल पर काम करने के लिए लगता है; संदेह है कि यह हालांकि अनुशंसित है):
fig.autofmt_xdate(rotation=45)
fig
आप आमतौर पर से मिलेगा:
fig = plt.figure()
fig, ax = plt.subplots()
fig = ax.figure
ऑब्जेक्ट-ओरिएंटेड / सीधे डील करना ax
विकल्प 3 ए
यदि आपके पास लेबल की सूची है:
labels = ['One', 'Two', 'Three']
ax.set_xticklabels(labels, rotation=45, ha='right')
विकल्प 3 बी
यदि आप वर्तमान प्लॉट से लेबल की सूची प्राप्त करना चाहते हैं:
# Unfortunately you need to draw your figure first to assign the labels,
# otherwise get_xticklabels() will return empty strings.
plt.draw()
ax.set_xticklabels(ax.get_xticklabels(), rotation=45, ha='right')
विकल्प 4
ऊपर के समान, लेकिन मैन्युअल रूप से इसके बजाय लूप।
for label in ax.get_xticklabels():
label.set_rotation(45)
label.set_ha('right')
विकल्प 5
हम अब भी यहाँ pyplot
(as plt
) का उपयोग करते हैं लेकिन यह ऑब्जेक्ट ओरिएंटेड है क्योंकि हम एक विशिष्ट ax
ऑब्जेक्ट की संपत्ति को बदल रहे हैं ।
plt.setp(ax.get_xticklabels(), rotation=45, ha='right')
विकल्प 6
यह विकल्प सरल है, लेकिन AFAIK आप इस तरह से क्षैतिज संरेखित लेबल सेट नहीं कर सकते हैं, इसलिए यदि आपका कोण 90 नहीं है तो दूसरा विकल्प बेहतर हो सकता है।
ax.tick_params(axis='x', labelrotation=45)
संपादित करें:
इस सटीक "बग" की चर्चा है और इसके लिए एक समाधान संभावित रूप से निर्धारित किया गया है v3.2.0
:
https://github.com/matplotlib/matplotlib/issues/13774
ha