首页 > 解决方案 > Python plotly express 带有累积总和的折线图

问题描述

本质上,我想绘制我的数据的折线图y ~ x | g,即我想分别绘制 y 的累积和并按组着色,而不必将这些添加到数据中。为什么?因为我想绘制很多这样的列,并且我不想为每个列添加一个累积列。考虑以下示例。

import pandas as pd
df = pd.DataFrame({
    "y" : [1,1,1,2,2,2],
    "x" : [1,2,3,1,2,3],
    "g" : ["a","a","a","b","b","b"]
})

import plotly.express as px
px.line(df, y="y", x="x", color="g")

我正在寻找一种方法来添加各种参数来告诉情节以按组绘制累积总和。有这样的功能或解决方法吗?

标签: pythonplotly

解决方案


  • 简单的熊猫 join()需要cumsum()groupby()
  • plotly express的数据框现在可以访问任何未求和的cumsum列或列
import pandas as pd
df = pd.DataFrame({
    "y" : [1,1,1,2,2,2],
    "x" : [1,2,3,1,2,3],
    "g" : ["a","a","a","b","b","b"]
})

import plotly.express as px
px.line(df.join(df.groupby("g", as_index=False).cumsum(), rsuffix="_cumsum"), y="y_cumsum", x="x", color="g")

在此处输入图像描述


推荐阅读