我正在尝试绘制样品中随时间测量的污染物的图表,并且一些样品日期更接近。如何使用当前日期时间值绘制此行,但使每个 xtick 相等?
这就是我到目前为止得到的,目前当样本更近时,蜱虫聚集在一起。
date = df_TCE.SAMPLEDATE.unique()
date_IA14 = df_TCE.SAMPLEDATE[df_TCE.SYS_LOC_CODE == 'IA-14']
IA14 = df_TCE.AL_RESULT_VALUE[df_TCE.SYS_LOC_CODE == 'IA-14']
plt.plot(date_IA14, IA14)
plt.title('TCE Time Series')
plt.xlabel('Date')
plt.ylabel('Contaminant Level')
ax = plt.subplot()
ax.set_xticks(date_IA14)
ax.set_yticks([1, 2, 3, 4, 5, 6, 7])
ax.set_facecolor('seashell')
plt.show()
这是将即时报价捆绑在一起的输出:
Output
您可以尝试以下几种方法。
首先,通过运行pandas.to_datetime(df_TCE.SAMPLEDATE)
来确保名为SAMPLEDATE
的数据帧系列是日期时间对象。解决出现的任何解析错误,以便真正处理日期时间 x 轴而不是字符串。
然后,签出fig.autofmt_xdate()
而不是ax.set_xticks(date_IA14)
。一旦我们的 x 轴填充了适当的日期时间对象,matplotlib
就足够聪明,可以让我们达到合理的 xtick 间距。
如果您不喜欢默认值,请查看matplotlib.dates.DayLocator()
或 HourLocator(( 或 MonthLocator((,无论满足您常规间隔需求的内容。您可以像这样将其应用于轴对象:ax.xaxis.set_major_locator(matplotlib.dates.DayLocator())
https://matplotlib.org/3.1.1/api/dates_api.html#matplotlib.dates.DayLocator