将matplotlib中的y轴从0开始设置

问题描述 投票:-1回答:1

我有一个简单的条形图,看起来像:

enter image description here

产生它的代码是:

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开始并在9处停止10.导致此问题的原因是因为我自己将yticks设置为matrix,因此它给了我这个数字。

您的问题是,如何将yticks设置为从0开始并在10处停止,我尝试使用np.arange()pyplot.yticks

python matplotlib
1个回答
1
投票

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()

这将给出以下内容:

enter image description here

问题是数组中值的类型为dtype='<U3',这意味着它将在y轴上绘制一个char值。

您总是可以将数组分隔为x标签和y值,并使用numpy

© www.soinside.com 2019 - 2024. All rights reserved.