Как изменить ось Y для отображения процентов (%) в графике Python Plotnine? - PullRequest
0 голосов
/ 03 октября 2018

Как мы можем изменить ось y на проценты, а не на дробь, используя библиотеку Plotnine в Python?

MWE барплота выглядит следующим образом:

from plotnine import *
from plotnine.data import mpg

p = ggplot(mpg) + geom_bar(aes(x='manufacturer', fill='class'), position='fill')
print(p)

Что дает следующеерисунок:

Диаграмма с накоплением с осью y в виде дроби, а не процента

С ggplot2 в R все просто, нужно только добавить:

+ scale_y_continuous(labels = scales::percent)

Однако я не смог найти, как это сделать в Плотнине.

Любой совет?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

аналогичный вопрос, заданный здесь: 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

0 голосов
/ 04 октября 2018

Параметр labels принимает вызываемый объект, который принимает список точек останова в качестве входных данных.Все, что вам нужно сделать, это преобразовать каждый элемент в списке вручную:

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