python - seaborn的swarmplot可以调整点的标记形状吗?
问题描述
我使用 seaborn 中的 swarmplot 函数来绘制类别散点图。但我在每个类别中有两种类型的点。所以我希望可以将不同类型的点设置为不同的标记。 seaborn的swarmplot可以调整点的标记形状吗?或者我可以使用其他工具
我只发现可以在swarmplot的文档中调整参数标记的大小。我尝试使用色调。但是当我使用色调时,所有类别都代表相同的颜色。那不是我的想法。
3.
# plot the manhattan map
snsplt =sns.swarmplot(x=scale,y=distance,marker='o')
plt.tick_params(labelsize=12)
# plot the significant line
bin = np.arange(-0.2,5.2,0.2)
y = np.full((len(bin),),distance[p_minsignIndex])
snsplt = sns.lineplot(x=bin,y=y)
plt.show()
我希望线上方的圆圈是实心圆圈,而线下方的圆圈是空心圆圈。
解决方案
鉴于您显示的图,您似乎同时发生了两个类别:
1)沿轴的位置表示一个类别——我称之为cat1
;并且,
2) 每个类别中的变化,这就是你想要通过标记显示的内容——我称之为cat2
.
到目前为止,将这两个类别一起显示的最简单方法是使用 seaborn 提供给您的工具来执行此操作。具体来说,在您的绘图中,您以两种不同的方式进行识别cat1
:首先通过其沿 x 轴的位置,其次通过颜色。所以这个想法是使用位置cat1
和颜色cat2
。此外,您在下面的评论中提到您想使用标记来显示统计显着性,所以我选择了一个做得很好的调色板。这是取自 seaborn 文档的示例,但经过修改以显示显着性阈值(根据您的要求):
import seaborn as sns
import numpy as np
tips['bigness'] = np.where(tips['total_bill']>15, 'big', 'small')
sns.swarmplot(x="day", y="total_bill", hue="bigness", data=tips, palette="Paired", hue_order=["small", "big"])
推荐阅读
- c - 如何检测 GtkScrolledWindow 是否滚动到底部?
- javascript - AJAX 调用在 Codeigniter 中不起作用以及如何有条件地重新加载页面/重新触发 ajax
- mysql - 来自 WHERE 子句的虚假结果的解释
- javascript - 在第一次单击时添加类并在第二次单击按钮时向下滚动
- oracle - 如何在 JAVA 中部分处理 db select 结果
- php - 我的 php 函数在运行 30 秒后停止
- node.js - 通过@odata.nextLink从节点递归获取所有数据来自rest api(odata)响应
- uwp - UWP 启动器。如何导入 Laucher 类
- r - 使用R中的循环从矩阵中递归删除最小值
- docker - 如何在 Jenkins 管道中设置 postgres 数据库?