I've been plotting timeseries data using the matplotlib.dates module and have 
come across an issue when using it in conjunction with the subplot command. 


For figures with greater than one subplot in a particular column, the time (or 
x) axis ticks and their labels are only printed on the final subplot that is 
plotted, and are missing on all other subplots in that column (see example code 
below). The only exception is when the time axis is identical for each plot in 
the column (you can test this by editing my example code at ###) - then all 
time axis ticks and their labels are displayed correctly.

Is this a bug in the subplot source code, or am I missing something?



from pylab import *
from matplotlib.dates import YEARLY, DateFormatter, rrulewrapper, RRuleLocator, 
drange
import datetime

# tick every 5th easter #
rule = rrulewrapper(YEARLY, byeaster=1, interval=5)
loc = RRuleLocator(rule)
formatter = DateFormatter('%m/%d/%y')

# data for subplot 1 #
date1 = datetime.date( 1952, 1, 1 )
date2 = datetime.date( 2004, 4, 12 )
delta = datetime.timedelta(days=100)

dates = drange(date1, date2, delta)
s = rand(len(dates)) # make up some random y values

# plot subplot 1 #
ax1 = subplot(211)
plot_date(dates, s)
ax1.xaxis.set_major_locator(loc)
ax1.xaxis.set_major_formatter(formatter)
labels = ax1.get_xticklabels()
setp(labels, rotation=30, fontsize=10)

# data for subplot 2 #
date1 = datetime.date( 2052, 1, 1 )  ###( 1952, 1, 1 ) 
date2 = datetime.date( 2104, 4, 12 ) ###( 2004, 4, 12 )

dates = drange(date1, date2, delta)
s = rand(len(dates)) # make up some random y values

# plot subplot 2 #
ax2 = subplot(212)
plot_date(dates, s)
ax2.xaxis.set_major_locator(loc)
ax2.xaxis.set_major_formatter(formatter)
labels = ax2.get_xticklabels()
setp(labels, rotation=30, fontsize=10)

show()
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to