簡體   English   中英

在 matplotlib 中設置 y 軸從 0 開始

[英]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

anumpy數組更改為列表列表將解決問題:

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.

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