我有一个熊猫数据,它描述了一些生产线机器的生产力(p =生产力)是它们的活动时间,wt (=工作时间)和它们应该工作的整个工作班次的比率,tt (=总时间)。dataframe如下所示:
machines tt wt p
1 7:30:00 4:30:00 0.60
2 7:30:00 3:30:00 0.50
3 6:00:00 5:24:00 0.90
... ... ... ...机器是字符串
tt和wt为datetime.time
P为float64
我需要在仪表板上展示这些机器的性能。达什以圆滑的方式建立数字,所以我可能不得不巧妙地使用零敲碎打的数字。我希望,对于每一台机器,都有一个片段来显示该特定机器的生产率。所以每台机器都有一个馅饼。我还不能发布图片,所以我会给你留下所需解决方案的链接。每台机器的输出应该大致如下所示
在@ Raymond的详尽答复之后,更新了,我想知道当我把光标放在蓝色区域(或者分别是lightblue区域)时,是否有任何方法显示机器活动的时间(或者分别是lightblue区域)。你知道怎么用破折号吗?
发布于 2021-07-07 08:09:41
import pandas as pd
import io
import plotly.graph_objects as go
from plotly.subplots import make_subplots
df = pd.read_csv(io.StringIO("""machines tt wt p
m1 7:30:00 4:30:00 0.60
m2 7:30:00 3:30:00 0.50
m3 6:00:00 5:24:00 0.90"""),sep="\s+",)
fig = make_subplots(
rows=1,
cols=len(df),
subplot_titles=df["machines"].astype(str),
specs=[[{"type": "pie"} for i in range(len(df))]],
)
for i, p in enumerate(df["p"]):
fig.add_trace(
go.Pie(
values=[1 - p, p],
hole=0.6,
showlegend=False,
textinfo="none",
hovertext=f"tt:{df.loc[i,'tt']}\twt:{df.loc[i,'wt']}",
marker={"colors": ["lightblue", "blue"]},
),
row=1,
col=i + 1,
)
fig.add_trace(
go.Indicator(
mode="number",
value=p,
gauge={"axis": {"visible": False}},
number={"valueformat": "%", "font":{"size":30}},
),
row=1,
col=i + 1,
)
fig

https://stackoverflow.com/questions/68281454
复制相似问题