【问题标题】:How to Plot a Dash plotly graph with categories count on a particular date如何在特定日期绘制带有类别计数的 Dash 绘图图
【发布时间】:2020-06-17 17:16:45
【问题描述】:

如何绘制任意时间点“主要/次要”问题数量的堆积条形图?

我在 csv 文件中有如下数据:

Issue_Date   Severity

20.2.2020    Major 
20.2.2020    Minor
31.3.2020    Major 
31.3.2020    Major 
31.3.2020    Minor
01.4.2020    Major

我正在使用 pandas 数据框读取上述 CSV,并尝试使用 group by 方法计算给定日期特定严重性的出现

data = df.groupby(["Issue_Date", "Severity"]).size()

这里的“数据”是一个系列 输出:

Issue_Date     Severity
20.2.2020       Major     1
                Minor     1
31.3.2020       Major     2
                Minor     1
01.4.2020       Major     1

在 x 轴上显示 Issue_date,在 y 轴上显示计数并根据严重性绘制堆叠类别。

如何使用破折号情节实现它?

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: python-3.x pandas plotly plotly-dash


【解决方案1】:

您需要取消堆叠groupby 并将它们作为 2 条迹线添加到绘图图中。 这是一个工作示例:

import pandas as pd
import plotly.graph_objects as go
import dash
import dash_core_components as dcc
import dash_html_components as html

data = {'Issue_Date': ['20.2.2020','20.2.2020','31.3.2020','31.3.2020','31.3.2020','01.4.2020'],
                   'Severity': ['Major','Minor','Major' ,'Major' ,'Minor','Major']}

df = pd.DataFrame (data, columns = ['Issue_Date', 'Severity'])

temp = df.groupby(["Issue_Date", "Severity"]).size()

temp1 = temp.rename('size').reset_index()

major=temp1[temp1['Severity']=='Major']
minor=temp1[temp1['Severity']=='Minor']

fig = go.Figure(data=[
    go.Bar(name='Major', x=major['Issue_Date'], y=major['size']),
    go.Bar(name='Minor', x=minor['Issue_Date'], y=minor['size'])
])

fig.update_layout(barmode='stack')

app = dash.Dash()
app.layout = html.Div([
    dcc.Graph(figure=fig)
])

app.run_server(debug=False)

【讨论】:

  • 感谢您的回答。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 2014-05-30
  • 2021-10-09
  • 2016-04-20
  • 2020-10-18
相关资源
最近更新 更多