在饼图python上显示百分比[关闭]
Posted
技术标签:
【中文标题】在饼图python上显示百分比[关闭]【英文标题】:Display percentages on piecharts python [closed] 【发布时间】:2021-09-17 17:30:23 【问题描述】:我有一个 pandas 数据框,它将某些生产线机器的生产力(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 是 datetime.time p 是 float64
我需要在仪表板上显示机器的性能。 Dash 在 plotly 上构建数字,所以我可能不得不使用 plotly 饼图。对于每台机器,我希望有一个饼图来显示该特定机器的生产力。所以每台机器一个馅饼。我还不能发布图片,所以我会给你提供所需解决方案的链接。每台机器的输出应该或多或少像这样
click here to see the image of output needed
更新 在@Rob Raymond 的详尽回答之后,我想知道当我将光标放在蓝色区域(或浅蓝色区域)上时,是否有任何方法可以显示机器处于活动状态(或浅蓝色区域)的时间。你知道如何用破折号来做到这一点吗?
【问题讨论】:
【参考方案1】: 您可以使用subplots 为每台机器绘制一个图 您可以在 Pie 上叠加一个 Indicator 来实现您的输出。如果 gauge(半圆形)适合您,那么您只需要使用 Indicatorimport 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
【讨论】:
非常感谢,我明白了。更进一步:如果我希望在将光标放在图像上时显示两次,该怎么办。 “两次”是指(1)当我将光标放在蓝色区域时机器正在工作的时间(wt),以及(2)机器不工作的时间(= tt - wt)当我将光标移到浅蓝色区域。有没有可能做这样的事情? 已更新 - 将 hovertext 定义为您想要的任何内容以上是关于在饼图python上显示百分比[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
echarts的饼图,可以在饼图的每个扇形上面显示文字和数据吗
如何使用jquery Highcharts在饼图中显示值而不是百分比