2013-07-18 12 views
8

यह है जैसे कि यह आसान होना चाहिए लगता है के तहत प्रमुख टिक लेबल आकर्षित - लेकिन मैं इसे कैसे करना नहीं देख सकते हैं:matplotlib: नाबालिग लेबल

मैं X- अक्ष पर समय के साथ एक साजिश है। मैं दो लंड के सेट सेट करना चाहता हूं, दिन के घंटे और दिन के महीने को दिखाते हुए प्रमुख टिक दिखाते हुए मामूली टिक। तो मैं इस कार्य करें:

# set date ticks to something sensible: 
xax = ax.get_xaxis() 
xax.set_major_locator(dates.DayLocator()) 
xax.set_major_formatter(dates.DateFormatter('%d/%b')) 

xax.set_minor_locator(dates.HourLocator(byhour=range(0,24,3))) 
xax.set_minor_formatter(dates.DateFormatter('%H')) 

यह टिक ठीक लेबल, लेकिन प्रमुख टिक लेबल (दिन/माह) नाबालिग टिक लेबल के ऊपर बनाए जाते हैं:

Sig. wave height ensemble time series

मैं कैसे करूँ मामूली लोगों के नीचे प्लॉट करने के लिए प्रमुख टिक लेबल को मजबूर करें? मैंने डेटफॉर्मेटर में न्यूलाइन एस्केप कैरेक्टर (\ n) डालने का प्रयास किया, लेकिन यह एक खराब समाधान है क्योंकि वर्टिकल स्पेसिंग बिल्कुल सही नहीं है।

किसी भी सलाह की सराहना की जाएगी!

उत्तर

15

आप axis विधि set_tick_params() कीवर्ड pad के साथ उपयोग कर सकते हैं। निम्नलिखित उदाहरण की तुलना करें।

import datetime 
import random 
import matplotlib.pyplot as plt 
import matplotlib.dates as dates 

# make up some data 
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(100)] 
y = [i+random.gauss(0,1) for i,_ in enumerate(x)] 

# plot 
plt.plot(x,y) 
# beautify the x-labels 
plt.gcf().autofmt_xdate() 

ax = plt.gca() 
# set date ticks to something sensible: 
xax = ax.get_xaxis() 
xax.set_major_locator(dates.DayLocator()) 
xax.set_major_formatter(dates.DateFormatter('%d/%b')) 

xax.set_minor_locator(dates.HourLocator(byhour=range(0,24,3))) 
xax.set_minor_formatter(dates.DateFormatter('%H')) 
xax.set_tick_params(which='major', pad=15) 

plt.show() 

पुनश्च: इस उदाहरण moooeeeep


से लिया गया है यहाँ कैसे ऊपर टुकड़ा प्रस्तुत करना होगा है:

+0

perfect- धन्यवाद! – ccbunney

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