Sometimes the data have a gap between the start of the validation period and the start of the data. Attached is a stand-alone Python script that demonstrates the problem, along with the plot that the script produces.
April 20 is the start of the validation period. I want 04-20 to appear at the plot origin. This does not happen unless either the model or observed dictionary contain a key/value pair for 1998,4,20,0. I tried adding datetime(1998,4,20,0):None to one or both dictionaries, but it is ignored.
Also the minor tick marks do not look right, especially the ones just to the right of each x-axis label.
Do you have any suggestions? Thanks, AnnI am working on a Windows PC; O/S is Windows XP Professional, Version 2002, Service Pack 3. I am running matplotlib, version '0.99.0' which I obtained from the matplotlib Sourceforge site.
I have not customized matplotlibrc. I am running python version 2.6.2.Attached is output.txt, the result of running my script with a verbose-helpful
<<inline: test_plot.png>>
import pylab
from datetime import datetime
from matplotlib.dates import date2num,DayLocator,HourLocator,DateFormatter
from matplotlib.pyplot import close
def test_plot():
'''
test_plot.py
Test code: How to get x-axis labeling to start at the plot origin?
USE
test_plot()
'''
model={datetime(1998,4,20,1):19.7,datetime(1998,4,21):42.2,datetime(1998,4,22):8.4,datetime(1998,4,23):28.2,datetime(1998,4,24):21.5}
observed={datetime(1998,4,20,1):20.1,datetime(1998,4,21):40.2,datetime(1998,4,22):10.4,datetime(1998,4,23):30.2,datetime(1998,4,24):22.5}
observed_keys=observed.keys()
observed_keys.sort()
observed_values=[]
for timetag in observed_keys:
observed_values.append(observed[timetag])
model_keys=model.keys()
model_keys.sort()
model_values=[]
for timetag in model_keys:
model_values.append(model[timetag])
fig=pylab.figure(facecolor='w')
ax=fig.add_subplot(111)
ax.plot_date(date2num(observed_keys),observed_values,'-',color='black')
ax.plot_date(date2num(model_keys),model_values,'-',color='red')
days=DayLocator() #major ticks will be on each day of the month
hours=HourLocator(interval=6) #minor ticks will be every 6 hours
daysFmt=DateFormatter('%m-%d') #x-axis major tick labels for plot
# format the ticks
ax.xaxis.set_major_locator(days) # major x-axis ticks
ax.xaxis.set_major_formatter(daysFmt) #x-axis major tick labels
ax.xaxis.set_minor_locator(hours) #minor x-axis ticks
ax.fmt_xdata = DateFormatter('%m-%d')
fig.autofmt_xdate(rotation=-30, ha='left') #rotate and right align the
xaxis labels
pylab.legend(('obs','model'),labelspacing = 0.005,loc='upper right')
pylab.show()
raw_input("press return to continue")
close() #close the figure.
return 1
if __name__ == '__main__':
test_plot()
$HOME=C:\Documents and Settings\ann.newman CONFIGDIR=C:\Documents and Settings\ann.newman\.matplotlib matplotlib data path C:\Python26\lib\site-packages\matplotlib\mpl-data loaded rc file C:\Python26\lib\site-packages\matplotlib\mpl-data\matplotlibrc matplotlib version 0.99.0 verbose.level helpful interactive is False units is False platform is win32 Using fontManager instance from C:\Documents and Settings\ann.newman\.matplotlib\fontList.cache backend TkAgg version 8.5 findfont: Matching :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=medium to Bitstream Vera Sans (C:\Python26\lib\site-packages\matplotlib\mpl-data\fonts\ttf\Vera.ttf) with score of 0.000000 findfont: Matching :family=sans-serif:style=normal:variant=normal:weight=normal:stretch=normal:size=large to Bitstream Vera Sans (C:\Python26\lib\site-packages\matplotlib\mpl-data\fonts\ttf\Vera.ttf) with score of 0.000000 press return to continue
<<attachment: Ann_Newman.vcf>>
------------------------------------------------------------------------------ Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the only developer event you need to attend this year. Jumpstart your developing skills, take BlackBerry mobile applications to market and stay ahead of the curve. Join us from November 9 - 12, 2009. Register now! http://p.sf.net/sfu/devconference
_______________________________________________ Matplotlib-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/matplotlib-users
