如何自定义间距并为matplotlib中的条形图上色

时间:2019-06-16 17:20:32

标签: python matplotlib bar-chart

我有以下数据,其中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()

enter image description here

如何自定义条之间的间距/颜色?

1 个答案:

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

输出:

enter image description here