繁体   English   中英

Plotnine/ggplot 多维箱线图或抖动图

[英]Plotnine/ggplot multiple dimension boxplots or jitterplot

我正在尝试使用 ggplot/plotnine 制作特定的 plot。 如果可能的话,我想保留它,这样我所做的一切都可以保留在同一个笔记本中。

本质上,我想创建一个框/抖动 plot 允许按类别分离或按类别进一步抖动。

我正在使用的数据根据特定指标评估 4 个不同的模型及其百分比误差。 数据结构如下。

数据:

    Model   metric  Percent Error
0   gbr Lower   46.533009
1   gbr Lower   22.654213
2   gbr Lower   17.404358
3   gbr Lower   5.134485
4   gbr Lower   4.550838
... ... ... ...
9963    cqrn    Average 5.745320
9964    cqrn    Average 16.465810
9965    cqrn    Average 14.737193
9966    cqrn    Average 81.743560
9967    cqrn    Average 73.008793

代码:

(ggplot(dat,aes(x="metric",
                y="Percent Error",
                color = "Model")) +
geom_jitter(width = .25,alpha=.4,show_legend=False) +
scale_y_log10() +
labs(title=f"Error Metrics"))

此代码呈现: 在此处输入图像描述

我想要一个看起来像这样的图表(抱歉粗图)。 这可以通过箱线图或抖动来降低 - 尽管如果可以的话,抖动会加分!

在此处输入图像描述

这可以通过设置使用position = position_jitterdodge()来实现:

注意:我稍微更改了您提供的示例数据,以使示例更真实。

dat = [['gbr', 'Lower', 46.533009], ['gbr', 'Lower', 22.654213], ['gbr', 'Lower', 17.404358], ['cqrn', 'Lower', 5.134485],['cqrn', 'Lower', 4.550838],['gbr', 'Average', 5.745320],['gbr', 'Average', 16.465810],['cqrn', 'Average', 14.737193],['cqrn', 'Average', 81.743560],['cqrn', 'Average', 73.008793]]

dat = pd.DataFrame(dat, columns = ['Model', 'metric','Percent Error'])

(ggplot(dat,aes(x="metric",
                y="Percent Error",
                color = "Model")) +
geom_jitter(alpha=.4, position = position_jitterdodge(jitter_width = .25)) +
scale_y_log10() +
labs(title="Error Metrics"))

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM