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

Cam*_*rez 5 python visualization bar-chart data-science 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)
Run Code Online (Sandbox Code Playgroud)

如下图所示:

y轴为分数而非百分比的堆积条形图

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

+ scale_y_continuous(labels = scales::percent)
Run Code Online (Sandbox Code Playgroud)

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

有什么建议吗?

Joã*_*rdo 8

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

scale_y_continuous(labels=lambda l: ["%d%%" % (v * 100) for v in l])
Run Code Online (Sandbox Code Playgroud)


小智 8

这里提出了类似的问题: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)
Run Code Online (Sandbox Code Playgroud)

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