python - 我如何使 xticks 等距,尽管它们很有价值?
问题描述
我正在尝试绘制随时间推移在样本中测量的污染物的图表,并且一些样本日期更接近。如何用当前日期时间值绘制这条线,但使每个 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()
这是带有刻度的输出:
解决方案
您可以尝试几件事。
首先,通过运行确保您调用的数据框系列SAMPLEDATE
是日期时间对象pandas.to_datetime(df_TCE.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
推荐阅读
- mysql - SQL 左连接查询以匹配结果中的所有限制
- flutter - 发现任务 ':shared_preferences:createFullJarDebug' 的配置有问题
- r - rbind在R中的嵌套for循环内
- mysql - sql 转换为 queryDsl
- javascript - 反应 JS。如何在对象内部显示图像?
- swift - 无法通过委托/协议访问父 VC 中的 func()
- javascript - 如何将 HAL JSON 转换为 OpenAPI JSON 以生成 JavaScript 客户端 API
- java - How to configure java app externally when some of the arguments configure with java command
- cypress - Cypress:测试提交 POST 表单引起的非 XHR 请求
- angular - 可观察到的 HttpResponseError