gpt4 book ai didi

python - YTick 在 Matplotlib 中重叠

转载 作者:太空宇宙 更新时间:2023-11-04 03:04:18 25 4
gpt4 key购买 nike

我一直在尝试在 Matplotlib 上绘制数据,但我似乎有重叠的 YTicks。我不确定如何调整它们。

代码

import matplotlib.pyplot as plt

data= [4270424, 4257372, 4100352, 4100356, 4100356]

plt.figure(figsize=(10,5))

plt.plot(data, 'ko-')
plt.ylabel('Data point')
plt.xlabel('Iteration point')
plt.yticks(data)

plt.margins(0.05, 0.1)
plt.show()

enter image description here

我想要的是数字在那里,但是否可以增加数据点之间的空间?

最佳答案

如果 y 轴上有很多相近的数据点,它们就会重叠。您可以避免显示所有这些。您可以只显示太近的 y 标记之一。但其余部分可以显示在绘图本身上(而不是在 y 轴上)。

可以使用类似的东西:

import matplotlib.pyplot as plt

data= [4270424, 4257372, 4100352, 4100356, 4100356]

fig, ax = plt.subplots(figsize=(10,8))

#Collect only those ticks that are distant enough from each other
#in order to get rid of ticks overlapping on y-axis:
yticks = [min(data)]
for i in sorted(data[0:]):
if i-yticks[-1] > 3500:
yticks.append(i)
#################################################################

plt.plot(data, 'ko-')
plt.ylabel('Data point', fontsize=12)
plt.xlabel('Iteration point', fontsize=12)
plt.yticks(yticks)

plt.margins(0.05, 0.1)


#Showing y-ticks right on the plot
offset = -1.45
x = ax.get_xticks()

for xp, yp in zip(x, data):
label = "%s" % yp
plt.text(xp-offset, yp+offset, label, fontsize=12, horizontalalignment='right', verticalalignment='bottom')
#################################

ax.grid()
plt.show()

输出: enter image description here

您也可以完全关闭在 y 轴上显示 yticks。在这种情况下,将此行 plt.yticks(yticks) 更改为:plt.yticks(yticks, visible=False)在这种情况下,您根本不需要 ticks 收集部分代码。但如果您保留它,您可以在以后需要时打开显示。

关于python - YTick 在 Matplotlib 中重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969217/

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