首页 > 解决方案 > Groupby 在 plotly 中为第三列而不是 x 和 y 轴的一部分

问题描述

我的数据框如下所示:

df 
node   date   usage
Node1  10/20  2.3
Node1. 10/21  3.4
Node2  10/20  1.9
Node3  10/20  3.3
Node3  10/22  2.4

我希望将 x 轴作为日期,将 y 轴作为使用情况进行绘图,但我希望在一个图中使用三个折线图 - 每个节点一个(节点不是索引)。在那种情况下我怎么能做一个 groupby ?

这是我的折线图代码:

data = [
    go.Scatter(
        x=result['date'],
        y=result['usage']).groupby('node')
]

layout=go.Layout(title="CPU Usage per Node per day", xaxis={'title':'date intervals'}, yaxis={'title':'CPU load usage'})
fig = go.Figure(data=data, layout=layout)
py.iplot(fig)

这不会按每个节点分组(Node1 一个折线图,Node2 一个折线图等)。我在 r 中看到了一个示例,如何在 python3 中执行此操作?

使用 Plotly 根据来自同一数据帧的列值绘制图形线

提前致谢

标签: python-3.xpandas-groupbyplotly-python

解决方案


使用以下 plotly 表达式解决了这个问题:

import plotly.express as px
fig_final = px.bar(df, x="date", y="usage", color="node", title="CPU Usage for Node 1")
fig_final.show()

推荐阅读