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