【问题标题】:plotly python lines going backwards even after sorting values即使在对值进行排序后,python 行也会向后移动
【发布时间】:2023-04-03 23:25:01
【问题描述】:

我正在尝试创建一个图来显示每个人的轨迹以及平均值。这工作正常,只是似乎有多余的行并且行倒退,即使在对值进行排序之后也是如此。

例子:

import pandas as pd
import plotly.graph_objects as go

df = pd.DataFrame({"id": [1,1,1,1,2,2,2,2],
                  "months": [0,1,2,3,0,1,2,3],
                  "outcome":[5,2,7,11,18,3,15,3]})

#sort by each individual and the months ie. time column
df.sort_values(by=["id", "months"], inplace=True)

#create mean to overlay on plot
grouped = df.groupby("months")["outcome"].mean().reset_index()

#create plot
fig = go.Figure()

fig.add_trace(go.Scatter(x= df['months'], y= df['outcome'], name = "Individuals"))

fig.add_trace(go.Scatter(x=grouped['months'], y=grouped['outcome'], name = "Mean"))

fig.write_image("test.jpeg", scale = 2)

fig.show()

现在我正在查看它,它实际上看起来只是为所有 ID 创建了一条巨大的线,而我希望 ID 1 为一条线,ID2 为一条线。

非常感谢任何帮助。提前致谢。

【问题讨论】:

  • 问题是您想为每个 ID 绘制 单独 线,因此您可能应该使用循环对 ID 进行分组并绘制单独的线,或重塑数组,以便您可以针对 [[Y10, Y11, Y12, Y13], [Y20, Y21, Y22, Y23]] 绘制 [0,1,2,3],(不是 [01,2,3,0, 1,2,3] 对 [Y10, Y11, Y12, Y13, Y20, Y21, Y22, Y23])

标签:
python
pandas
plotly