当我为直方图着色时,它接受不同颜色的列表,但是,对于阴影,它只接受一个值。
这是代码:
import numpy as np
import matplotlib.pylab as plt
data = [np.random.rand(100) + 10 * i for i in range(3)]
ax1 = plt.subplot(111)
n, bins, patches = ax1.hist(data, 20, histtype='bar',
color=['0', '0.33', '0.66'],
label=['normal I', 'normal II', 'normal III'],
hatch= ['', 'o', '/'])
如何为不同的系列设置不同的舱口?
答案 0 :(得分:6)
不幸的是,看起来hist不支持多系列图的多个阴影。但是,您可以通过以下方式解决这个问题:
import numpy as np
import matplotlib.pylab as plt
data = [np.random.rand(100) + 10 * i for i in range(3)]
ax1 = plt.subplot(111)
n, bins, patches = ax1.hist(data, 20, histtype='bar',
color=['0', '0.33', '0.66'],
label=['normal I', 'normal II', 'normal III'])
hatches = ['', 'o', '/']
for patch_set, hatch in zip(patches, hatches):
for patch in patch_set.patches:
patch.set_hatch(hatch)
patches
返回的对象hist
是BarContainer
个对象的列表,每个对象包含一组Patch
个对象(在BarContainer.patches
中)。因此,您可以访问每个补丁对象并明确设置其填充。
或@MadPhysicist指出您可以在每个plt.setp
上使用patch_set
,以便循环缩短为:
for patch_set, hatch in zip(patches, hatches):
plt.setp(patch_set, hatch=hatch)