gpt4 book ai didi

python - 使用 matplotlib 在 x 轴上设置最小/最大年份

转载 作者:行者123 更新时间:2023-11-28 18:52:56 25 4
gpt4 key购买 nike

我绘制了特定地点 16 年来碳通量的时间序列。我希望 x 轴有年份 (1992-2007) 而不是年份 (1-16)。当我将 x 轴设置为具有 1992 年的最小值和 2007 年的最大值时,该图不会出现在图上,但是当我不设置最小/最大年份时,它会出现。我不确定我做错了什么。我在一年内绘制了另一个时间序列,并且能够使用 MonthLocator 将 x 轴标记为月份,但我没有使用 YearLocator。这是我编写的代码:

fig=pyplot.figure()
ax=fig.gca()
ax.plot_date(days,nee,'r-',label='model daily nee')
ax.plot_date(days,nee_obs,'b-',label='obs daily nee')

# locate the ticks
ax.xaxis.set_major_locator(YearLocator())

# format the ticks
ax.xaxis.set_major_formatter(DateFormatter('%Y'))

# set years 1992-2007
datemin = datetime.date(1992, 1, 1)
datemax = datetime.date(2007, 12, 31)
ax.set_xlim(datemin, datemax)

labels=ax.get_xticklabels()
setp(labels,'rotation',45,fontsize=10)

legend(loc="upper right", bbox_to_anchor=[0.98, 0.98],
ncol=1, shadow=True)

pyplot.ylabel('NEE($gC m^{-2} day^{-1}$)')
pyplot.title('Net Ecosystem Exchange')

pyplot.savefig('nee_obs_model_HF_daily.pdf')

# rotates and right aligns the x labels, and moves the bottom of the
# axes up to make room for them
#fig.autofmt_xdate()

pyplot.show()
pyplot.close()

最佳答案

我认为 Andrey Sobolev 是对的。当我运行您的脚本时,稍作调整,:-),使用我将日期字段作为日期的一些数据,我可以毫无问题地显示年份。它实际上是您的代码,除了:

fh = open(thisFileName)
# a numpy record array with fields: date, nee, nee_obs
# from a csv, thisFileName with format:
# Date,nee,nee_obs
# 2012-02-28,137.20,137.72
matplotlib.mlab.csv2rec(fh)
fh.close()
r.sort()
days = r.date
nee = r.nee
nee_obs = r.nee_obs
...
...

然后我得到: NEE Figure

此解决方案的大部分内容借鉴自 here .如果我误解了您的需求,请告诉我。

关于python - 使用 matplotlib 在 x 轴上设置最小/最大年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9501628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com