从两个 pandas 数据帧派生的散点图,在 plotly [express] 中有多个列
Scatter plot derived from two pandas dataframes with multiple columns in plotly [express]
我想创建一个散点图,它从一个数据帧驱动它的 x
值,从另一个具有多列的数据帧驱动它的 y
值。
x_df
:
red blue
0 1 2
1 2 3
2 3 4
y_df
:
red blue
0 1 2
1 2 3
2 3 4
我想绘制像
这样的散点图
我想要两个 red
和 blue
轨迹,这样 x
值应该来自 x_df
并且 y
值来自 y_df
.
- 在某个层你需要做数据集成。恕我直言,最好在 数据层 完成,即 pandas
- 已修改您的示例数据,因此两条轨迹不会重叠
- 使用
join()
假设数据帧的索引是连接键
- 可以有进一步的结构化数据框,但是我使用 plotly express 生成了多个跟踪,根据需要进行修改以确保创建颜色和图例
- 没有考虑轴标签...
x_df = pd.read_csv(io.StringIO(""" red blue
0 1 2
1 2 3
2 3 4"""), sep="\s+")
y_df = pd.read_csv(io.StringIO(""" red blue
0 1.1 2.2
1 2.1 3.2
2 3.1 4.2"""), sep="\s+")
df = x_df.join(y_df, lsuffix="_x", rsuffix="_y")
px.scatter(df, x="red_x", y="red_y").update_traces(
marker={"color": "red"}, name="red", showlegend=True
).add_traces(
px.scatter(df, x="blue_x", y="blue_y")
.update_traces(marker={"color": "blue"}, name="blue", showlegend=True)
.data
)
我想创建一个散点图,它从一个数据帧驱动它的 x
值,从另一个具有多列的数据帧驱动它的 y
值。
x_df
:
red blue
0 1 2
1 2 3
2 3 4
y_df
:
red blue
0 1 2
1 2 3
2 3 4
我想绘制像
我想要两个 red
和 blue
轨迹,这样 x
值应该来自 x_df
并且 y
值来自 y_df
.
- 在某个层你需要做数据集成。恕我直言,最好在 数据层 完成,即 pandas
- 已修改您的示例数据,因此两条轨迹不会重叠
- 使用
join()
假设数据帧的索引是连接键 - 可以有进一步的结构化数据框,但是我使用 plotly express 生成了多个跟踪,根据需要进行修改以确保创建颜色和图例
- 没有考虑轴标签...
x_df = pd.read_csv(io.StringIO(""" red blue
0 1 2
1 2 3
2 3 4"""), sep="\s+")
y_df = pd.read_csv(io.StringIO(""" red blue
0 1.1 2.2
1 2.1 3.2
2 3.1 4.2"""), sep="\s+")
df = x_df.join(y_df, lsuffix="_x", rsuffix="_y")
px.scatter(df, x="red_x", y="red_y").update_traces(
marker={"color": "red"}, name="red", showlegend=True
).add_traces(
px.scatter(df, x="blue_x", y="blue_y")
.update_traces(marker={"color": "blue"}, name="blue", showlegend=True)
.data
)