首页 > 解决方案 > Plotly Express 中多列数据的散点图

问题描述

我有一个pandas如下所示的数据框

            x        s       y
Date
2021-06-25  1       red      2
2021-06-28  2       red      3
2021-06-29  3       red      4
2021-06-25  1       blue     2
2021-06-28  2       blue     3
2021-06-29  3       blue     4

如何在plotly[express]/cufflinks中创建散点图散点图

这样绘图轴是xy并且是绘图redblue的单独轨迹。有什么提示吗?

标签: pandasdataframeplotly

解决方案


  • 您的样本数据看起来有问题,红色和蓝色的值相同。已将 0.5 添加到蓝色以进行演示
  • 简单的熊猫首先构造数据,所以颜色是列
  • 然后使用情节表达 scatter()
import pandas as pd
import io
import plotly.express as px

df = pd.read_csv(io.StringIO("""Date            x        s       y
2021-06-25  1       red      2
2021-06-28  2       red      3
2021-06-29  3       red      4
2021-06-25  1       blue     2.5
2021-06-28  2       blue     3.5
2021-06-29  3       blue     4.5"""), sep="\s+").set_index("Date")

df2 = df.set_index(["x","s"]).unstack("s").droplevel(0,1)

px.scatter(df2, x=df2.index, y=df2.columns)

在此处输入图像描述


推荐阅读