plotnine geom_boxplot игнорирует требуемую эстетику и требует ненужной эстетики - PullRequest
0 голосов
/ 04 октября 2019

У меня есть данные, которые выглядят следующим образом:

Scenario        ymin         lower        middle         upper      ymax
One     16362.586379  20911.338893  27121.693254  35219.449009  46406.087619
Two     19779.003240  25390.096116  33108.174561  43545.202225  58464.277060

Вместо использования всех 50 тыс. Точек данных для каждого сценария (их намного больше, чем один и два), я имеювычислил позиции, которые мне нужны для коробки и усов.

Я пытаюсь построить это через

import pandas
import plotnine as p9

df = pandas.read_excel('boxplot_data.xlsx', sheet='Sheet1')
gg = p9.ggplot()
gg += p9.geoms.geom_boxplot(mapping=p9.aes(x='Scenario', ymin='ymin', lower='lower', middle='middle', upper='upper', ymax='ymax'), data=df, color='k', show_legend=False, inherit_aes=False)
gg += p9.themes.theme_seaborn()
gg += p9.labels.xlab('Scenario')
gg.save(filename='scenario_boxplot.png', dpi=300)

Документация по https://plotnine.readthedocs.io/en/stable/generated/plotnine.geoms.geom_boxplot.html#plotnine.geoms.geom_boxplot указывает, что строка кода geom_boxplot предоставляетТребуются эстетические параметры для определения коробки и усов.

Выполнение этого, однако, дает

plotnine.exceptions.PlotnineError: 'stat_boxplot требуется следующая отсутствующая эстетика: y'

Почему stat_boxplot вызывается с его требуемой эстетикой, а не geom_boxplot ?

И что еще важнее, кто-нибудь знает, как это исправить?

1 Ответ

1 голос
/ 05 октября 2019

Вы используете geom_boxplot с stat_boxplot вместо stat_identity.

geom_boxplot(stat='identity', ...)
...