在图表上显示百分比

2024-05-29 02:14:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个熊猫数据框架,它描述了一些生产线机器的生产率(p=生产率),作为它们的活动时间wt(=工作时间)和它们应该工作的整个工作班次tt(=总时间)的比率。数据帧如下所示:

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是日期时间。时间
p是浮动的64

我需要在仪表板上显示机器的性能。Dash在plotly上构建图形,所以我可能不得不使用plotly图表。我希望,对于每台机器,都有一个图表,显示特定机器的生产率。所以每台机器一个馅饼。我还不能发布图片,所以我会给你留下所需解决方案的链接。每台机器的输出应大致如下所示

click here to see the image of output needed

更新 在@Rob Raymond给出详尽的回答后,我想知道当我将光标放在蓝色区域(或分别为浅蓝色区域)上时,是否有任何方法可以显示机器处于活动状态的时间(或分别为浅蓝色区域)。你知道dash怎么做吗


Tags: 数据机器框架区域图表时间plotly比率
1条回答
网友
1楼 · 发布于 2024-05-29 02:14:31
  • 您可以使用subplots来绘制每台机器的绘图
  • 您可以在饼图上分层一个指标,以实现您的输出。如果仪表(半圆)对您有效,则您只需使用指示器
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

enter image description here

相关问题 更多 >

    热门问题