【发布时间】:2021-12-04 11:14:07
【问题描述】:
我想绘制“LapTimeSeconds”与“Driver”的 Seaborn swarmplot,我希望每个 swarm(驱动程序)都以“颜色”列中的相应颜色绘制,我还想要边缘颜色每个标记都是给定的'Compound_colour'
我有一个数据框 df,看起来像:
Driver Colour LapNumber LapTimeSeconds Compound Compound_colour
HAM #00d2be 2 91.647 MEDIUM #ffd300
HAM #00d2be 5 91.261 MEDIUM #ffd300
HAM #00d2be 8 91.082 SOFT #FF3333
VER #0600ef 3 91.842 MEDIUM #ffd300
VER #0600ef 6 91.906 MEDIUM #ffd300
NOR #ff8700 10 90.942 SOFT #FF3333
这是我目前拥有的一些代码。
sns.set_palette(df['Colour'].unique().tolist())
ax = sns.boxplot(x="Driver", y="LapTimeSeconds", data=df, width = 0.8, color = 'white')
ax = sns.swarmplot(x="Driver", y="LapTimeSeconds", data=df, size = 9, linewidth=1)
这给出了一个看起来像这样的情节
但是,我希望每个标记的边缘颜色为相应的“Compound_colour”,例如化合物为“中等”我希望边缘颜色为“#ffd300”(黄色)且化合物为“软” ' 我希望边缘颜色为 '#FF3333'(红色)。
这与我的目标相似。有没有办法做到这一点?
【问题讨论】:
-
感谢您的回复。这种方法适用于 plt.scatter,但是当使用较大的数据集时,散点图可能会变得混乱,这就是我想使用 swarmplot 的原因。我还没有设法将其改编为 swarmplot。
标签: python pandas matplotlib seaborn