gpt4 book ai didi

python - 对数图中的重叠轴刻度标签

转载 作者:太空狗 更新时间:2023-10-30 00:01:23 28 4
gpt4 key购买 nike

我有一些代码在大约一年前使用 pyplot 时运行良好;我使用对数 y 轴使用 plt.plot(x,y) 绘制了一个图,并将 y 轴刻度和刻度标签替换为自定义设置,如下所示:

# set the axis limits
Tmin = -100 # min temperature to plot
Tmax = 40 # max temperature
Pmin = 100 # min pressure
Pmax = 1000 # max pressure
plt.axis([Tmin, Tmax, Pmax, Pmin])

# make the vertical axis a log-axis
plt.semilogy()

# make a custom list of tick values and labels
plist = range(Pmin,Pmax,100)
plabels = []
for p in plist:
plabels.append(str(p))

plt.yticks(plist,plabels)

在最近将我的 python 安装更新到当前版本的 miniconda 之后,我现在发现虽然新标签仍然出现,但它们部分被 matplotlib 的科学记数法默认标签覆盖。因此,看起来虽然上面的代码用于替换默认刻度和标签,但它现在只是添加它们。

我需要做什么才能重新获得所需的行为?为什么它首先会发生变化?

最佳答案

您遇到的问题是a known bug这是not easy to fix .问题的核心是主要和次要刻度线的混合;设置 yticks 会重新定义主要刻度,而次要刻度会导致重叠。

解决问题之前的解决方法是使用 plt.minorticks_off()(或使用面向对象 API 的 ax.minorticks_off())手动禁用次刻度):

Tmin = -100  # min temperature to plot
Tmax = 40 # max temperature
Pmin = 100 # min pressure
Pmax = 1000 # max pressure
plt.axis([Tmin, Tmax, Pmax, Pmin])

# make the vertical axis a log-axis
plt.semilogy()
plt.minorticks_off() # <-- single addition

# make a custom list of tick values and labels
plist = range(Pmin,Pmax,100)
plabels = []
for p in plist:
plabels.append(str(p))

plt.yticks(plist,plabels)

result with minor ticks disabled: no overlaps

至于何时发生变化:它came with the default style changes用 matplotlib 2.0 制作。

关于python - 对数图中的重叠轴刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46498157/

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