python - 如何使用 plotly 和 streamlit 绘制 groupby
问题描述
我有一个由 3 列组成的数据框我想绘制 3 列的交叉表结果
到目前为止,我能够绘制分组 2 列的条形图。在 jupyter notebook 上不使用 streamlit
当我尝试使用 streamlit 时,它显示以下错误:
TypeError: add_trace() missing 1 required positional argument: 'trace'
那么我的代码中的错误在哪里?
代码:
import streamlit as st
import pandas as pd
import plotly.express as px
import plotly.graph_objs as go
#create a canvas for each item
interactive = st.beta_container()
df =pd.DataFrame({"source_number":[11199,11328,11287,32345,12342,1232,13456,123244,1235],
"location":["loc1","loc2","loc3","loc1","loc1","loc2","loc3","loc2","loc1"],
"category":["cat1","cat3","cat1","cat3","cat2","cat3","cat2","cat3","cat1"],
})
all_columns_names= df.columns.tolist()
selected_column_names = st.multiselect("select column to plot",all_columns_names)
s = df[selected_column_names[0]].str.strip().value_counts()
with interactive:
fig = go.Figure
for name,group in df.groupby(selected_column_names[0]):
trace =go.Histogram()
trace.name = name
trace.x = group[selected_column_names[1]]
fig.add_trace(trace)
fig.show()
解决方案
这里可能还有更多事情要做,但你()
在fig = go.Figure()
这里失踪了:
with interactive:
fig = go.Figure
for name,group in df.groupby(selected_column_names[0]):
推荐阅读
- regex - 正则表达式 - 如何编写正则表达式以仅捕获数字或字母数字而非字母
- python - 在图像上找到线条端点的优雅/更快的方法?
- android - 当我按下手机上的音量按钮时,Android Mediaplayer setVolume 不起作用
- git - Git - 维护与 master 并行的部署分支
- python - 使用 Pyinstaller 发布打包
- jazzy - jazzy 生成的 docsets 文件夹是什么
- c++ - 具有区域设置的字典排序
- android - Flutter 使用 FlatButton 中的不同图像修复相同大小
- python - 将pdf转换为txt文件时出现TypeError
- mongodb - %project 规范无效:投影字符串值必须以 \'%\' 开头