当省略x或y参数时,swarmlot无法识别色调

2024-08-21Python开发问题
1

本文介绍了当省略x或y参数时,swarmlot无法识别色调的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

data = {'name': ['A', 'B', 'C', 'D'],
        'score': [-9.5, -8.3, -8.1, -7.0],
        'color': [4, 3, 2, 1]}

df = pd.DataFrame(data)
我将我的数据放在类似于上面的数据框中,并且我正在将其绘制到如下所示的海运沼泽图中。这些点是根据它们的分数绘制的,根据它如何落在3条虚线之间,我想给这些点加上不同的颜色。我使用df的‘color’列根据‘Score’值所在的位置分配一个键,该键对应于颜色和字典。

colors = {1:'pink', 2:'orange', 3:'red', 4:'green'}

然后我使用以下代码创建swarmlot,并将颜色字典映射到我的df的Colors列。

ax = sns.swarmplot(data=df, y='score', s=10, c=df['color'].map(colors))

当我这样做时,我不会生成任何错误,但是没有应用任何颜色,并且这些点保持其默认的蓝色(下图,左图)。那么,如何根据我的df['color']列为海运地块中的点指定颜色?

最后注意:当我尝试使用palette=df['color'].map(colors)而不是c=df['color'].map(colors)时,图形只会将所有内容更改为colors词典中的最后一个颜色(下图,右侧)

编辑:感谢您的建议@Trenton McKinney。这在某种程度上是成功的,因为颜色确实正确映射,但是当我包括x的‘name’列(它的实际标题)时,如下所示,我的点像散点图一样绘制,而不是像群图一样绘制。但如果尝试从参数中删除x='Title',则会出错。

ax = sns.swarmplot(data=data, x='Title', y='score', s=10, hue='color', palette=colors)

推荐答案

  • 根据seaborn issue 941,这是预期行为。
  • 如果只指定x或只指定y,接口似乎玩得不好。
    • 根据数据帧的长度传递相同字符串的列表即可解决此问题:['']*len(df)['text']*len(df)
ax = sns.swarmplot(data=df, x=['']*len(df), y='score', hue='color', palette=colors)

这篇关于当省略x或y参数时,swarmlot无法识别色调的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

在xarray中按单个维度的多个坐标分组
groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)...
2024-08-22 Python开发问题
15

Pandas中的GROUP BY AND SUM不丢失列
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)...
2024-08-22 Python开发问题
17

pandas 有从特定日期开始的按月分组的方式吗?
Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)...
2024-08-22 Python开发问题
10

GROUP BY+新列+基于条件的前一行抓取值
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)...
2024-08-22 Python开发问题
18

PANDA中的Groupby算法和插值算法
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)...
2024-08-22 Python开发问题
11

PANAS-基于列对行进行分组,并将NaN替换为非空值
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)...
2024-08-22 Python开发问题
10