簡體   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