【发布时间】:2022-10-06 08:35:56
【问题描述】:
嗨,我希望有人能提供帮助……我正在尝试根据侧边栏中的选择绘制箱线图。假设我在下表中已经预先计算了分位数值。我正在尝试在特定日期为每个功能构建一个箱线图。因此,如果我选择一个特征和 2 个日期,它将在一行中显示两个箱线图。如果我选择在 2 个日期上显示,那么 2 行和 2 列。但是,每个功能都需要有自己的规模,因为范围完全不同。
这是我到目前为止所做的,但看起来不太好。一切都太挤了,我什至不认识箱线图。有任何想法吗?
import pandas as pd
import streamlit as st
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
df = pd.read_csv(\"file.csv\")
date_choice = st.sidebar.selectbox(\"Date\", df[\"date\"])
feature_choice = st.sidebar.multiselect(\"Features\", df[\"feature\"])
ncols = len(date_choice)
nrows = len(feature_choice)
fig = make_subplots(rows=nrows, cols=ncols)
for i in range(1, nrows + 1):
for j in range(1, ncols + 1):
fig.add_trace(go.Box(lowerfence = df[\"min\"], q1 = df[\"q25\"]
, median = df[\"q50\"], q3 = df[\"q75\"], upperfence = df[\"max\"])
, row=i, col=j)
st.plotly_chart(fig)
| feature | date | min | q25 | q50 | q75 | max |
|---|---|---|---|---|---|---|
| a | 2022-01-01 | 0 | 12 | 90 | 1500 | 4000 |
| a | 2022-01-02 | 0 | 25 | 100 | 1300 | 3500 |
| b | 2022-01-01 | 9000 | 21000 | 50000 | 90000 | 150000 |
| b | 2022-01-02 | 8000 | 15000 | 60000 | 95000 | 200000 |
| c | 2022-01-01 | 30 | 40 | 50 | 60 | 70 |
| c | 2022-01-02 | 35 | 45 | 55 | 65 | 75 |
-
你的尝试是什么?
标签: plotly boxplot subplot plotly-python streamlit