从两个 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

我想绘制像

这样的散点图

我想要两个 redblue 轨迹,这样 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
)