python - 如何在跨度矩形顶部绘制小提琴图的主体?
问题描述
我想在背景颜色之上做一个小提琴图。我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)
可以看到小提琴形状的蓝色出现在背景颜色(红色和绿色)的透明度中。我希望密度形状的蓝色位于一切之上。
解决方案
这个问题类似于改变 matplotlib 的小提琴图的颜色,但不完全相同。我不会重复 Nick T 在他的回答中写的内容(一定要感谢他),但只需添加PolyCollection
hasset_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)
给出:
推荐阅读
- android - 由于缺少 Play 商店,Admob 广告未显示在我的 Android 模拟器中的颤振应用程序上?
- php - 视频 html5 元素在 Laravel 上无法正常工作
- javascript - 未经检查的 runtime.lastError:无法访问 chrome:// URL
- mysql - 无法使用 powershell cmdlet 连接到 MySQL 数据库
- strapi - 在 Strapi 中创建内容类型时出现状态 400(错误请求)
- php - 为什么 PHP 文件返回“数组”,而不是其内容
- postgresql - 在单个 GraphQL 突变中插入查询的默认值
- javascript - 需要使用来自 api Reactjs 的数据异步更新表
- git - Git cherry-pick - 如何在不实际执行任何操作的情况下显示更改
- c# - 为 .NET 5/6 win 表单实现托盘图标上的菜单