我有以下两个数据帧,我想一起绘制。第一个(data
)包含多个重复实验(=重复)的不同组的完整数据,以及该实验中单个细胞的值。第二个(avgs
)总结了所有组的每个重复实验的平均值。我基本上希望以建议的方式绘制数据
data.head()
cell replicate value group
0 1 1 0.029723 GROUP_A
1 1 2 0.019136 GROUP_A
2 2 2 0.020216 GROUP_A
3 3 1 0.032020 GROUP_B
4 3 2 0.044815 GROUP_B
avgs.head()
replicate value group
0 1 0.019709 GROUP_A
1 2 0.018937 GROUP_A
2 1 0.358437 GROUP_B
3 2 0.269602 GROUP_B
4 3 0.303252 GROUP_B
我的目标是实现B或C中显示的绘图,其中色调取决于组和复制
import matplotlib.pyplot as plt
import seaborn as sns
sns.swarmplot(x="group", y="value", data=data, hue="replicate")
sns.swarmplot(x="group", y="value", data=avgs,size=8,hue="replicate", edgecolor="k", linewidth=2)
是否有一种方法可以做到这一点,或者为每个组使用不同的调色板,这样每个组都有不同的颜色,每个复制品都有不同的颜色深浅(示例B,在Affinity Designer中制作)
另一种对我有用的方法是用灰色调色板绘制data
的单个单元格值。然而,当我添加avgs
的复制平均值数据时,如何实现这一点,每组都有不同的颜色,并且每个复制平均值都有相应的颜色底纹(示例C)
是否可以将调色板字典传递给seaborn/matplotlib,例如:
gray = sns.dark_palette("gray", n_colors=5)
red = sns.dark_palette("red", n_colors=5)
blue = sns.dark_palette("blue", n_colors=5)
my_palette={"GROUP_A": gray, "GROUP_B": red, "GROUP_C": blue}
谢谢
这些组可以单独打印,每个组都有自己的调色板。为了确保x位置得到尊重,需要使用所有所需的x标签设置
order=
关键字Seaborn会为每次通话自动添加图例条目,因此图例可能会变得非常大。您可以抑制图例,也可以将其限制为前几个条目
相关问题 更多 >
编程相关推荐