python-3.x - 绘制日期时比例不一致
问题描述
我有一个格式化的日期matplotlib.dates.date2num
列表和一个整数列表。我正在尝试在 x 轴上绘制带有日期的折线图。但是,matplotlib 在使用 Python 3 时并不总是正确地绘制日期。但是,我注意到在使用 Python 2 时这不是问题。
这是我的代码:
fig, ax = plt.subplots()
plt.title(constants.chart_title)
plt.xlabel('X-Axis')
plt.ylabel('Y-Axis ')
fig.autofmt_xdate()
plt.plot_date(;ist_of_formatted_dates, list_of_integers)
plt.savefig('chart.png')
这是使用 2 个不同版本的 python 输出相同脚本的示例:
✅ Python 2.7
❌ Python 3.6
使用 Python 3 时,似乎 matplotlib 正在绘制所有奇数天,问题是 3 月有 31 天,所以 03-31 和 04-01 相隔 1 天,即使所有其他奇数天都是 2相隔几天。
有什么解决方法吗?
解决方案
感谢 Jody Klymak,我能够解决这个问题。我在保存图表之前添加了几行代码:
plt.xticks()
locator = mpd.AutoDateLocator(interval_multiples=False)
ax.xaxis.set_major_locator(locator)
matplotlib
更改了 Python 3 的一些默认 kwargs,因此最后两行代码只是将其更改回原来的行为。并plt.xticks()
确保日期格式正确。
推荐阅读
- node.js - 如何修复使用 AWS SES 和 Lambda 发送电子邮件?
- python - 如何在python中运行chmod?
- flutter - FocusScope.of(context).requestFocus(myFocusNode) vs myFocusNode.requestFocus();
- kubernetes - 删除命名空间并删除 helm 部署?
- javascript - 回答: SyntaxError: JSON.parse: expected ':' 但它位于对象的末尾
- javascript - 无法使用 .length 属性循环数组/函数
- firebase - 来自已部署的 Firebase 功能的 403
- javascript - 从 angular 5 升级到 angular 8,SystemJS 出现问题
- google-cloud-platform - BigQuery Storage API:表的存储格式不受支持
- javascript - 使用 JavaScript,如何根据这些参数/规则生成一个 randm 11 字符字符串?(L,L,L,L/N,L/N,N,N,N,N,N,N)