经过一段时间的试验,我找到了一个解决方案:
您可以直接在
geom_label
为了实现所需的百分比显示:
import polars as pl
from plotnine import *
import mizani.labels as ml
df = pl.DataFrame({
"group": ["A", "B"],
"rate": [.511, .634]
})
(
ggplot(df, aes(x="group", y="rate", label="rate"))
+ geom_col()
+ geom_label(format_string='{:.1%}')
+ scale_y_continuous(labels=ml.percent)
)
结果:
此外,您可以替换
mizani
按如下方式在y轴上进行格式化,以获得相同的结果:
import polars as pl
from plotnine import *
df = pl.DataFrame({
"group": ["A", "B"],
"rate": [.511, .634]
})
(
ggplot(df, aes(x="group", y="rate", label="rate"))
+ geom_col()
+ geom_label(format_string='{:.1%}')
+ scale_y_continuous(labels=lambda l: ["{:.1f}%".format(v * 100) for v in l])
)