【发布时间】: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 行也会向后移动 - Python技术站