gpt4 book ai didi

python - 在 seaborn 散点图中对分类 x 轴进行排序

转载 作者:行者123 更新时间:2023-12-05 00:45:12 24 4
gpt4 key购买 nike

我正在尝试使用 seaborn 散点图绘制数据框中前 30% 的值,如下所示。

enter image description here

同一情节的可重现代码:

import seaborn as sns

df = sns.load_dataset('iris')

#function to return top 30 percent values in a dataframe.
def extract_top(df):
n = int(0.3*len(df))
top = df.sort_values('sepal_length', ascending = False).head(n)

return top

#storing the top values
top = extract_top(df)

#plotting
sns.scatterplot(data = top,
x='species', y='sepal_length',
color = 'black',
s = 100,
marker = 'x',)

在这里,我想按 order = ['virginica','setosa','versicolor'] 对 x 轴进行排序。当我尝试使用 order 作为 sns.scatterplot() 中的参数之一时,它返回了一个错误 AttributeError: 'PathCollection' object has no property 'order '。正确的做法是什么?

请注意:在数据框中,setosa 也是 species 中的一个类别,但是,在前 30% 的值中,它的值没有下降。因此,该标签未显示在顶部可重现代码的示例输出中。但我什至想要 x 轴上的标签,以及如下所示的给定顺序:

enter image description here

最佳答案

scatterplot() 不是该工作的正确工具。由于您有一个分类轴,因此您想使用 stripplot() 而不是 scatterplot()。在此处查看关系图和分类图之间的区别 https://seaborn.pydata.org/api.html

sns.stripplot(data = top,
x='species', y='sepal_length',
order = ['virginica','setosa','versicolor'],
color = 'black', jitter=False)

enter image description here

关于python - 在 seaborn 散点图中对分类 x 轴进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64762709/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com