Plotly Express散点图添加颜色分组后保留原排序的方法
解决Plotly Express散点图保留原排序同时添加颜色分组的问题
先确认你的DataFrame已经按
freq列完成排序,示例代码:df_sorted = df.sort_values('freq', ascending=False)将x轴对应的列(比如你用到的
EC_name)转换为分类类型,并明确指定分类顺序为排序后该列的唯一值顺序:df_sorted['EC_name'] = pd.Categorical( df_sorted['EC_name'], categories=df_sorted['EC_name'].unique(), ordered=True )最后调用
px.scatter绘图,此时添加color="EC_class"参数后,x轴会严格保留你之前按freq排序的顺序:import plotly.express as px fig = px.scatter(df_sorted, x='EC_name', y='freq', color='EC_class') fig.show()
原理很简单:Plotly在处理普通字符串类型的x轴时,会自动按分组或字母顺序重排;但如果是有序分类类型,就会完全遵循你预先指定的顺序渲染,这样就能同时实现颜色分组和保留原排序的需求。
内容的提问来源于stack exchange,提问作者Corsair
相关产品推荐
相关产品推荐

