如何更改 y 轴以在 Python Plotnine 条形图中显示百分比 (%)?



我们如何在 Python 中使用 Plotnine 库将 y 轴更改为百分比,而不是分数?

条形图的 MWE 如下:

from plotnine import *
from plotnine.data import mpg
p = ggplot(mpg) + geom_bar(aes(x='manufacturer', fill='class'), position='fill')
print(p)

这给出了下图:

以 y 轴作为分数而不是百分比的堆积条形图

在 R 中使用 ggplot2 很简单,只需要添加:

+ scale_y_continuous(labels = scales::percent)

但是,我无法在Plotnine中找到如何做到这一点。

有什么建议吗?

这里提出的类似问题:https://github.com/has2k1/plotnine/issues/152

from plotnine import *
from plotnine.data import mpg
from mizani.formatters import percent_format
p = ggplot(mpg) + geom_bar(aes(x='manufacturer', fill='class'), position='fill')
p = p + scale_y_continuous(labels=percent_format())
print(p)

其他预定义过滤器可在此处找到:https://mizani.readthedocs.io/en/stable/formatters.html

labels参数接受将断点列表作为输入的可调用对象。您所要做的就是手动转换列表中的每个项目:

scale_y_continuous(labels=lambda l: ["%d%%" % (v * 100) for v in l])

相关内容

  • 没有找到相关文章

最新更新