Python 和 plot() : how to limit the number of x-axis ticks (labels)

标签 python matplotlib

我有两个列表,大小相同,一个是 y_data,一个是 x_data x_data 是白天的 hh:mm:ss 时间,实际上是每分钟 每个系列的长度为 1440。

问题是:

fig = Figure(figsize=(4,3))
a = gif.add_subplot(111)
a.plot(x_data, y_data)

给出一个不可读的 x_axis(标签太多),例如,如果我将 x_data 减少到 [range(24)],绘图会出错。

问题:

我只想在 x_axis 刻度上有 24 个项目(每小时,所以每 60 个 x_data 点有 1 个项目) 有没有一种简单的方法可以实现这一目标? set_autoscale_on(False) 然后手动设置限制似乎是实现此目的的一种非常复杂的方法(我会失去 y 轴上自动缩放的好处)。 另一个解决方案似乎涉及 a.xaxis.set_ticks() 但我必须创建一个新系列。

o 我想使用 x_data 但只是限制 x_axis 上显示的刻度数,有没有办法做到这一点?

最佳答案

matplotlib的pyplot接口(interface)提供了一个函数locator_params ,您可以在其中设置此选项:

fig = Figure(figsize=(4,3))
a = fig.add_subplot(111)
a.plot(x_data, y_data)
a.locator_params(nbins=4)

关于Python 和 plot() : how to limit the number of x-axis ticks (labels),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8533261/

相关文章:

python - 使用 Mechanize 在 wordpress 上发帖

python - 如何将 Bokeh 图标更改为其他图像

python - [pycharm 远程 python 控制台] : "cannot connect to X server" error with import pandas

Python 使用 Seaborn Relplot 绘制带有列表单元格的数据框

python-3.x - plt.imshow() 没有正确显示 numpy 矩阵

python - 如何在不使用 Selenium 的情况下抓取 WHO 流感数据?

python - 为什么在 python 脚本中使用 yt-dlp 时 FFmpeg 不起作用?

python - 如何从 PyPi 中删除文档

image - plt.imshow() 和 plt.show() 没有图像弹出或显示

python - 你能在 matplotlib 中的绘图线上添加一个数字吗?