繁体   English   中英

如何在pyplot中的一个特定点添加yticks?

[英]How to add yticks to one specific point in pyplot?

我有一堆数字(可以说全部小于500)和数据中的一些“ inf”。 我想使用整数绘制它们(我用1000表示'inf')。 但是,在图的y轴上,我想写'inf'而不是1000。如果我使用'plt.yticks',我可以在所有y点上添加标签,这不是我想要的。 如何在一个特定点添加标签?

您可以覆盖刻度线的数据位置和刻度线的标签。 这是一个散点图的示例,在“无穷大”处有3个额外的点。 它看起来不太好,因为加分点为1000,并且在空白处显示有刻度。

from matplotlib import pyplot as plt
import numpy as np

# create some data, plot it.
x = np.random.random(size=300)
y = np.random.randint(0,500, 300)
x_inf = [0,.1,.2]
y_inf = [1000,1000,1000]

plt.scatter(x,y)
plt.scatter(x_inf, y_inf)

在此处输入图片说明

首先抓住轴。 然后,我们可以覆盖哪些数据位置应具有刻度,在这种情况下,以100为步长,然后是1000,覆盖0至500。然后,我们也可以覆盖刻度本身的标签。

ax = plt.gca()
# set the positions where we want ticks to appear
ax.yaxis.set_ticks([0,100,200,300,400,500,1000])
# set what will actually be displayed at each tick.
ax.yaxis.set_ticklabels([0,100,200,300,400,500,'inf'])

在此处输入图片说明

看一下这个:

plt.plot(np.arange(5), np.arange(5))
plt.yticks(np.arange(5), [200, 400, 600, 800, 'inf'])
plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM