[英]Plotting a set of functions using a 'violin-plot' style plot in python
[英]How to plot the body of violin-plot on top of span rectangle?
我想在背景颜色上做一个小提琴图。 我使用axvspan
创建背景。 我的问题是:我找不到让小提琴情节(小提琴形状)的主体出现在背景颜色之上的方法。 它只能通过背景的透明度可见。 由于 violin-plot 无法识别zorder
命令,有没有办法将 violin-plot 放在所有内容之上?
例如:
import numpy as np
import matplotlib.pyplot as plt
plt.figure()
plt.axvspan(-5,0,color='r' ,alpha =0.5)
plt.axvspan(0,5,color='g' ,alpha =0.5)
plt.violinplot(np.random.normal(0,1,100), vert = False)
可以看到小提琴形状的蓝色出现在背景颜色(红色和绿色)的透明度中。 我希望密度形状的蓝色位于一切之上。
这个问题类似于Changing the color of matplotlib's violin plots,虽然不完全相同。 我不会重复 Nick T 在他的回答中写的内容(一定要感谢他),但只需补充说PolyCollection
也有set_alpha
和set_zorder
方法,您可以像这样使用它们:
plt.figure()
plt.axvspan(-5, 0, color='r', alpha=0.5, zorder=1)
plt.axvspan(0, 5, color='g', alpha=0.5, zorder=1)
parts = plt.violinplot(np.random.normal(0, 1, 100), vert=False)
parts['bodies'][0].set_alpha(0.8)
parts['bodies'][0].set_zorder(2)
给出:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.