如何在跨度矩形上绘制violinplot的主体?

2024-04-19 22:07:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在背景色上画一个小提琴情节。我使用axvspan来创建背景。我的问题是:我找不到办法使小提琴的主体情节(小提琴的形状)出现在背景色之上。只有通过背景的透明度才能看到它。既然vionicplot不能识别zorder命令,那么有没有办法让vionicplot放在所有命令之上呢?你知道吗

例如:

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)

enter image description here

人们可以看到,蓝色的小提琴形状出现在透明的背景色(红色和绿色)。我想把密度形状的蓝色放在上面。你知道吗


Tags: import命令alphaasnppltcolor蓝色
1条回答
网友
1楼 · 发布于 2024-04-19 22:07:15

这个问题类似于Changing the color of matplotlib's violin plots,但并不完全相同。我不会重复Nick t在his answer中所写的内容(也一定要感谢他),只需补充一下^{}还有^{}^{}方法,您可以这样使用:

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)

提供:

enter image description here

相关问题 更多 >