python bar
以下为bar的一个实例
import matplotlib.pyplot as plt
import numpy as np
data = [[13,3,2,55,2,51,4,23],
[12,34,1,13,55,24,13,13,4],
[11,23,13,34,52,13,45,12,32,13],
[12,43,24,13],
[1,42,4,7,96,34,]]
color_list=['g','b','y','k','r']
gap = 1/len(data)
for i,row in enumerate(data):
x = np.arange(len(row))
plt.bar(x+i*gap,row,width=gap,color=color_list[i%len(color_list)])
plt.show()
结果图如下:
解释:函数enumerate可以获取data的每一列和列的索引值
建立有重叠的bar图:
import matplotlib.pyplot as plt
import numpy as np
data = np.array([[5., 30., 45., 22.],
[5., 25., 50., 20.],
[1., 2., 1., 1.]])
color_list = ['b', 'g', 'r']
X = np.arange(data.shape[1])#给出每组列表的个数,即图上的bar的数目
for i in range(data.shape[0]):#i表示list的索引值
plt.bar(X, data[i],
bottom = np.sum(data[:i], axis = 0),
color = color_list[i % len(color_list)])
plt.show()
结果如下:
上面建立了一个二维数组,数组的维度为:第一维度是shape[0]=3(即第一个中括号有三个列表),第二维度是shape[1]=4(每个列表有4个数),
sum函数的用法见numpy sum
shape函数的用法见numpy shape
相关文章