我在matplotlib中生成堆栈条形图(在Windows 7上使用Python 2.7)。堆栈matplotlib栏中的替代颜色
由于我想用它来对两个数据集中的数据进行两两比较,所以我想为每个第二栏使用不同的颜色。任何人都可以告诉我如何实现这一目标?
我的条形图基本上是这样的:
import numpy
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(1,1,1)
IDs = ["1","A","2","B","3","C","4","D","5","E"]
N = len(IDs)
property1 = numpy.array([1,3,4,2,3,5,6,7,3,2])
property2 = numpy.array(range(10))
property3 = numpy.array(range(10,0,-1))
ind = numpy.arange(N)
width = 0.8
p1 = ax1.bar(ind, property1, width, color='red')
p2 = ax1.bar(ind, property2, width, color='blue', bottom=property1)
p3 = ax1.bar(ind, property3, width, color='green', bottom=property1 + property2)
plt.xticks(ind+width/2., IDs)
plt.show()
plt.close()
所以我想用一个配色方案用字母标记的酒吧,另一个用于那些用数字标记(因为例如,“1”和“A “形成一对 - 它们代表2种不同实验条件下的同一样品,这就是为什么我希望它们彼此相邻的原因)。理想情况下,如果宽度可以适应一对(但是对之间的差距)的酒吧之间没有差距,那将是非常好的。
但现在,我不知道如何去做这件事,所以任何建议都会很棒!
(我可以单独使用这两种数据的“套”,那是更容易?也许做两个地块同宽的间隙,相互交叉?)
我认为这个问题有一个你想要的例子。 http://stackoverflow.com/questions/12742317/chart-barh-matplotlib-overlap-bars/12747726#12747726 – tacaswell
@tcaswell:我不明白这个问题与我的相关。我不想要一个水平条形图,我知道宽度和高度是如何工作的。这与颜色有什么关系? – Lastalda
更改'barh' - >'bar'和'height' - >'width'。将你的数据和IDS分成两组,一组由数字索引,一组以字母索引。你所做的一件事是,问题所问的代码显示了如何交错两个数据集。 – tacaswell