gpt4 book ai didi

python - 给定一些数据,我如何预测 matplotlib 将在何处绘制刻度?

转载 作者:行者123 更新时间:2023-11-28 17:43:27 27 4
gpt4 key购买 nike

Matplotlib 可以很好地设置轴上的限制和刻度以捕获数据的范围,同时将刻度放在间隔良好的整数上。

我希望能够在它发生之前预测一组数据将在何处绘制刻度(实际上,我很高兴知道刻度的限制,我不需要知道特别是内部刻度将被绘制的位置)。

我已经查看了 Axes 和各种 Ticker 对象,但我似乎无法找到发生这种情况的位置。理想情况下,我正在寻找一个函数 automatic_ticker 这样如果我有两个向量,

x, y = np.random.randn(2, 30)

我可以打电话

xticks_predict = plt.automatic_ticker(x)

然后

plt.plot(x, y)
xticks_actual, _ = plt.xticks()

assert tuple(xticks_predict) == tuple(xticks_actual)

这个存在吗?

最佳答案

我认为您正在寻找类似的东西:

from matplotlib.ticker import MaxNLocator
xticks_predict = MaxNLocator(integer=True, symmetric=True).tick_values(x.min(), x.max())

但我发现测试与 plt.plot(x, y) 中使用的刻度存在一些差异,其中大部分似乎是关于原点的不对称刻度范围 --- 即使 symmetric=Truedocs指示 AutoLocator 作为典型的默认值,但我发现当 plt.plot() 中使用的刻度都是整数时,它会返回小数刻度位置(例如 2.5)。

当然,您可以通过将绘图刻度设置为预测刻度来“作弊”:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MaxNLocator

np.random.seed(seed=0)
x, y = np.random.randn(2, 30)
ticking = MaxNLocator(integer=True, symmetric=True)
xticks_predict = ticking.tick_values(x.min(), x.max())
plt.plot(x, y)
plt.xticks(xticks_predict)
plt.savefig("example.pdf")

关于python - 给定一些数据,我如何预测 matplotlib 将在何处绘制刻度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21339905/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com