python - 使用 matplotlib 限制 x 刻度的频率

标签 python matplotlib

我在限制 x 轴上的日期数量以使它们清晰易读时遇到困难。我需要绘制字长与年份的关系图,但年数对于绘图大小来说太大了。

问题:

enter image description here

感谢任何帮助。

最佳答案

正如评论中提到的,使用日期时间(如果您的日期是字符串格式,您可以轻松 convert them to datetime )。执行此操作后,它应该会自动沿 x 轴显示年份。如果您需要将刻度频率更改为每年每年(或其他任何内容),您可以使用 mdates,如下所示:

import matplotlib.dates as mdates
import matplotlib.pyplot as plt
import datetime
import math

start = datetime.datetime.strptime("01-01-2000", "%d-%m-%Y")
end = datetime.datetime.strptime("10-04-2019", "%d-%m-%Y")

x = [start + datetime.timedelta(days=x) for x in range(0, (end-start).days)]
y = [math.sqrt(x) for x in range(len(x))]

fig, ax = plt.subplots()
ax.plot(x, y)
ax.xaxis.set_major_locator(mdates.YearLocator())
fig.autofmt_xdate()
plt.show()

上面的代码片段生成以下内容: enter image description here

关于python - 使用 matplotlib 限制 x 刻度的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58241956/

相关文章:

python - 使用 GeoPandas 在 map 上绘制点组会生成空白图像

python - 将类别为值的 pandas Series 转换为 DataFrame 掩码

python - Linux Mint 18.1下安装pyFFTW失败 'Serena'

python - Eclipse 编辑器无法识别 Scipy 内容

python - 在 seaborn Pairgrid 中绘制下三角

python - 删除散点图中线下方的数据 (Python)

python - 如何在 Python 中重复字符串中的单个字符

python - 导入pylab时matplotlib "DLL load failed"

python - 移动时 Cx_freeze .exe 将无法工作

python - 通过命令行使用 Python 进行交互式绘图