【问题标题】:Scatter plot derived from two pandas dataframes with multiple columns in plotly [express]散点图来自两个 pandas 数据帧,其中多列在 plotly [express]
【发布时间】:2023-03-05 11:54:01
【问题描述】:

我想创建一个散点图,从一个数据帧驱动其 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 dataframe plotly plotly-express


【解决方案1】:
  • 在某些层面,您需要进行数据集成。恕我直言,最好在 数据层 完成,即 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
)

【讨论】:

    猜你喜欢
    • 2021-10-05
    • 2018-02-08
    • 2019-05-29
    • 2020-05-14
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2017-10-27
    • 2018-03-03
    相关资源
    最近更新 更多