python - Plotly Dash 中的堆积条形图
问题描述
我正在将 CSV 文件读入数据框并尝试绘制堆积条形图。对于每个国家/地区,我必须将正计数、负计数和中性计数堆叠为条形图。
我的数据如下所示。
country sentiment count
India positive 10
India negative 7
Pakistan positive 120
Pakistan negative 10
Pakistan neutral 3
Australi positive 35
NewZealand positive 20
NewZealand negative 20
NewZealand neutral 0
我无法绘图。
df = pd.read_csv("C:\\Users\\sentiment_by_location.csv")
df = df.sort_values(by=['count'], ascending=False)
html.H2(children='''Sentiments by Location'''),
dcc.Graph(
id='sentimet-location',
figure={
'data': [
go.Bar(
x=df['location'],
y=[df['sentiment'], df['count']]
)
],
'layout': {
'title': 'Sentiment By Location'
}
}
)
输出图不是所需的堆叠格式。
解决方案
您需要为每个情绪创建一个新go.bar()
跟踪,然后在“布局”下定义条形模式。Ploty的文档显示了一些有关如何执行此操作的示例。
import pandas as pd
import plotly.graph_objects as go
import dash
import dash_core_components as dcc
import dash_html_components as html
df = pd.read_csv("C:\\Users\\sentiment_by_location.csv")
df = df.sort_values(by=['count'], ascending=False)
bars = []
for sentiment in df['sentiment'].unique():
bar = go.Bar(name=sentiment, x=df[df['sentiment'] == sentiment]
['country'], y=df[df['sentiment'] == sentiment]['count'])
bars.append(bar)
fig = go.Figure(data=bars)
fig.update_layout(barmode='stack', title='Sentiment By Location')
app = dash.Dash()
app.layout = html.Div([
dcc.Graph(figure=fig)
])
app.run_server(debug=True, use_reloader=False)
推荐阅读
- javascript - 输入复选框在选中时更改 div 颜色
- windows - 为什么即使在 Windows 应用程序的 SvcConfigEditor.exe(App.config 文件)上启用了 .svclog 文件,也没有创建它?
- azure - ASP.NET Core 3.1 的构建过程中有哪些步骤?
- microsoft-graph-api - 如何在 MS Graph 或 SharePoint REST API 中区分站点页面和 Wiki 页面
- javascript - 粘贴文本时 Node REPL 中的奇怪行为(Windows 操作系统) - 崩溃
- apache-kafka-streams - Kafka Streams 2.5.0 需要输入主题
- javascript - Postman - 使用变量键获取响应值
- android - 如何添加第二个梯度波?
- javascript - 该按钮应在准确的时间弹出
- linux - 如何在 windows 共享文件夹中使用 PutFile