gpt4 book ai didi

python - Plotly - "grouped"散点图

转载 作者:行者123 更新时间:2023-12-05 01:57:56 26 4
gpt4 key购买 nike

假设我有以下 pandas 数据框:

import pandas as pd
d = {'Person': ['Bob']*9 + ['Alice']*9,
'Time': ['Morining']*3 + ['Noon']*3 + ['Evening']*3 + ['Morining']*3 + ['Noon']*3 + ['Evening']*3,
'Color': ['Red','Blue','Green']*6,
'Energy': [1,5,4,7,3,6,8,4,2,9,8,5,2,6,7,3,8,1]}
df = pd.DataFrame(d)

enter image description here

如何创建这样的 plotly ? enter image description here(请原谅粗略的绘图)

我曾尝试将散点图、带状图和箱线图引入其中,但没有成功。

谢谢!

最佳答案

  • 为每个生成一个散点轨迹
  • 关于 x 的一些逻辑,以便每个人都被抵消。因此 hovertextxaxis ticks
import plotly.graph_objects as go

xbase = pd.Series(df["Time"].unique()).reset_index().rename(columns={"index":"x",0:"Time"})
dfp = df.merge(xbase, on="Time").set_index("Person")

go.Figure(
[
go.Scatter(
name=p,
x=dfp.loc[p, "x"] + i/10,
y=dfp.loc[p, "Energy"],
text=dfp.loc[p, "Time"],
mode="markers",
marker={"color": dfp.loc[p, "Color"], "symbol":i, "size":10},
hovertemplate="(%{text},%{y})"
)
for i, p in enumerate(dfp.index.get_level_values("Person").unique())
]
).update_layout(xaxis={"tickmode":"array", "tickvals":xbase["x"], "ticktext":xbase["Time"]})

enter image description here

关于python - Plotly - "grouped"散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68791841/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com