我有一个简单的条形图,看起来像:
产生它的代码是:
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
。
将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'
,这意味着它将在y轴上绘制一个char值。
您总是可以将数组分隔为x标签和y值,并使用numpy
。