【发布时间】:2021-02-22 00:37:04
【问题描述】:
我正在尝试使用 seaborn 散点图绘制数据框中前 30% 的值,如下所示。
同一情节的可重现代码:
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 轴上的标签,以及如下所示的给定顺序:
【问题讨论】:
标签: python pandas matplotlib seaborn scatter-plot