0

我的数据看起来像:

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 k 数据点(不止一个和两个),而是计算了盒子和胡须所需的位置。

我试图通过

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

更重要的是,有人知道如何纠正这个问题吗?

4

1 回答 1

1

您正在使用geom_boxplotwithstat_boxplot而不是stat_identity.

geom_boxplot(stat='identity', ...)
于 2019-10-04T22:20:20.507 回答