我有以下数据,其中A和B属于两个不同的类别;另外,在A和B中,A1(或B1)属于A和B的子类别。换句话说,A1在一个子类别中,而A2和A3在另一个子类别中。对于B同样如此。
labels= ['A1', 'A2', 'A3', 'B1', 'B2', 'B3']
values= [2, 4, 3, 2.5, 3.5, 4]
我想做一个条形图,其中A和B类别以及子类别是分开的(最好用不同的颜色)。我的尝试是:
import matplotlib.pyplot as plt
import numpy as np
index = np.arange(len(labels))
plt.bar(index, values)
plt.ylabel('Values', fontsize=14)
plt.xticks(index, labels, fontsize=14)
plt.show()
如何自定义条之间的间距/颜色?
答案 0 :(得分:1)
您可以手动设置索引和颜色:
import matplotlib.pyplot as plt
import numpy as np
labels= ['A1', 'A2', 'A3', 'B1', 'B2', 'B3']
values= [2, 4, 3, 2.5, 3.5, 4]
# set indexing manually
index = np.array([0,1,2,4,5,6])
# plot bars with colors
bar_list = plt.bar(index, values, width=0.5, color=('r', 'r', 'r', 'b','b','b'))
plt.ylabel('Values', fontsize=14)
plt.xticks(index, labels, fontsize=14)
plt.show()
输出: