这是matplotlib 1.5.0版。我似乎无法以rcParams
服从脸部颜色的方式设置violinpot
。我分别为prop_cyle
和facecolor
设置了axes
和patch
密钥无效。例如下面的代码......
import matplotlib
from cycler import cycler
matplotlib.rcParams['axes.prop_cycle'] = cycler('color', ['pink','purple','salmon'])
matplotlib.rcParams['patch.facecolor'] = 'pink'
matplotlib.rcParams['patch.edgecolor'] = 'blue'
import matplotlib.pyplot as plt
from numpy.random import randn
fig = plt.figure(figsize=(12,6))
X = randn(100)
ax = fig.add_subplot(121)
for i in range(3):
ax.hist(X+2*i)
ax = fig.add_subplot(122)
for i in range(3):
ax.violinplot(X+2*i)
plt.show()
....产生:
很难从图片中辨别,但边缘颜色实际上在小提琴图中设置为蓝色。似乎有violinplot
的默认alpha设置,这使得这一点不太明显。但是,面部颜色显然保持默认状态。为什么会这样,我可以强制它使用rcParams
值吗?我在绘图后意识到I can set the facecolors manually,但我宁愿让这些情节服从默认值。
答案 0 :(得分:1)
不幸的是,红色和黄色的颜色在violonplot的代码中是硬编码的。
bodies += [fill(stats['coords'],
-vals + pos,
vals + pos,
facecolor='y',
alpha=0.3)]
(...)
artists['cmeans'] = perp_lines(means, pmins, pmaxes, colors='r')
我建议你删除matplotlib github
上的功能请求