首页 > 解决方案 > 从数据框/数据透视表中用 Plotly/Dash 创建饼图

问题描述

这是我的代码,作为快速解释,我正在过滤我的数据框以选择正确的 KPI,在本例中为 Operator Share,即正确的国家/地区,它预先存储在变量国家和 2017 年中。然后我想创建一个饼图使用不同规格的 KPI 值。因此,规范应该是标签,而 KPI 值应该是值。

df_plot_operator_share = df[df['Country'] == Country]
df_plot_operator_share = df.loc[(df['KPIname'].isin(['OperatorShare'])) & (df['YearNb']==2017)]

pv_operator_share = pd.pivot_table(
df_plot_operator_share,
index=['Specification'],
values=['KPIvalue'],
aggfunc=sum,
fill_value=0)

trace1 = go.Pie(
lables= pv_operator_share.index, values= pv_operator_share["KPIvalue"],
name='OperatorShare')
return {
'data': [trace1],
'layout':
go.Layout(
    title='Country: {} Operator Share'.format(Country),
    )

}

Pivot 的 Specifications 具有标头和 KPIvalues 作为其值。

我想要一个饼图,它使用规范作为标签,将 KPI 值作为值。

但由于某种原因,它不起作用。

标签: pythonpandasplotlyplotly-dash

解决方案


你试图阴谋打电话?例如:

import plotly
import plotly.plotly as py
import plotly.graph_objs as go
trace1 = go.Pie(
                labels = pv_operator_share.index,
                values= pv_operator_share["KPIvalue"],
                name='OperatorShare'
                )
data = [trace1]
layout = go.Layout(
                   title='Country: {} Operator Share'.format(Country),
                   )
fig = go.Figure(data=data, layout=layout)
plotly.offline.plot(fig, filename='Plot.html')

推荐阅读