簡體   English   中英

縮放 y 軸並在 Matplotlib plot 中設置 ytick 標簽

[英]Scale y axis and set ytick labels in a Matplotlib plot

我想用一個例子來解釋我的查詢,這是一個示例代碼片段

x = [i for i in range(1, 129)]
y = [i**2 for i in x]
plt.plot(x, y)
plt.show()

Output:

在此處輸入圖像描述

我想要縮放 y 軸,以便它只顯示三個等距的 ytick 標簽:[0, 5000, 15000],為此我使用了 matplotlib 的set_yticks功能:

x = [i for i in range(1, 129)]
y = [i**2 for i in x]

plt.plot(x, y)
plt.yticks([0, 7500, 15000], [0, 5000, 15000])
plt.show()

output:

在此處輸入圖像描述

雖然 ytick 標簽按照我的意願顯示,但曲線沒有改變,我希望曲線根據新的 ytick 標簽自行縮放。 我不想更改 plot 中的 xtick 標簽。 有沒有辦法做到這一點?

我認為你在正確的軌道上......

x = [i for i in range(1, 129)]
y = [i**2 for i in x]
plt.plot(x, y)
plt.yticks([0, 7500, 15000])
plt.show()

應該給出 3 個等距的 y 刻度。

x = [i for i in range(1, 129)]
y = [i**2 for i in x]
plt.plot(x, y)
plt.yticks([0, 5000, 15000])
plt.show()

給出你提到的 y 刻度,但它們不會均勻分布。

您可以在此處使用matplotlib.ticker.MultipleLocator用於等距Y 軸

from matplotlib.ticker import MultipleLocator
plt.plot(x,y) #x,y I used are from the question itself.
ax= plt.gca()
ax.yaxis.set_major_locator(MultipleLocator(7500))

Output: 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM