[英]set y axis to start from 0 in matplotlib
我有一個簡單的條形圖,如下所示:
產生它的代碼是:
import matplotlib.pyplot as plt
import numpy as np
a = np.array([['c++','php'],
[3,9]])
y_pos = np.arange(len(a[0]))
labels = np.arange(1,11,1)
objects = a[1]
ax = plt.bar(a[0], a[1], align='center', alpha=1)
plt.xticks(y_pos, a[0])
plt.ylabel('usage')
plt.title('Programming Languange Usage')
plt.show()
O 制作了這個條形圖,使用matplotlib
,數據是從2x2 matrix
中獲取的,問題是, yaxis
軸從 3 開始並在 9 處停止,我希望它從 0 開始並在 10 處停止。導致此問題的問題是因為我從它自己的matrix
中設置了yticks
,因此它給了我這個數字。
你的問題是,如何將yticks
設置為從 0 開始並在 10 停止?,我嘗試使用np.arange()
和pyplot.yticks
。
將a
從numpy
數組更改為列表列表將解決問題:
import matplotlib.pyplot as plt
import numpy as np
a = [['c++','php'],
[3,9]]
y_pos = np.arange(len(a[0]))
labels = np.arange(1,11,1)
objects = a[1]
bars = plt.bar(a[0], a[1], align='center', alpha=1)
plt.xticks(y_pos, a[0])
plt.ylabel('usage')
plt.title('Programming Languange Usage')
plt.show()
這將給出以下內容:
問題是數組中值的類型是dtype='<U3'
這意味着它將 plot y 軸上的 char 值。
您始終可以將數組分隔為 x 標簽和 y 值並使用numpy
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.