如何使 xtick 等距,尽管它们有价值?



我正在尝试绘制样品中随时间测量的污染物的图表,并且一些样品日期更接近。如何使用当前日期时间值绘制此行,但使每个 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

最新更新