Plotly Dash绘制条形图出现分段堆叠、悬停计数为1问题咨询
问题解决说明
你之前的错误效果如下:
错误原因
你直接将未做统计的原始明细数据传入px.bar()函数绘制条形图,Plotly默认会为每一行数据生成一个高度为1的条形,同一分类下的多个条形自动堆叠后就会出现方块拼接的效果,鼠标悬停时也只会显示单条数据对应的计数1。
修复方案
绘图前先对EntityType字段做分组计数,用统计后的汇总数据绘图即可得到符合预期的实心柱形效果,修改后的代码如下:
import dash import pandas as pd import plotly.express as px import dash_core_components as dcc import dash_html_components as html df = pd.read_csv('dp-export-296620.csv') # 统计每个EntityType的总出现次数 count_df = df['EntityType'].value_counts().reset_index() count_df.columns = ['EntityType', '总数量'] # 传入汇总后的统计数据绘图,指定y轴为统计得到的总数量 fig = px.bar(count_df, x='EntityType', y='总数量', color='EntityType') app = dash.Dash(__name__) app.layout = html.Div([ dcc.Graph( id = "graph", figure = fig ) ]) if __name__ == '__main__': app.run_server(debug=True)
修改后生成的条形图会直接展示每个分类对应的总统计数,鼠标悬停也会显示正确的总计数。
内容的提问来源于stack exchange,提问作者OakGroove15
相关产品推荐
相关产品推荐

