在ggplot2中格式化小提琴图

Posted

技术标签:

【中文标题】在ggplot2中格式化小提琴图【英文标题】:Formatting a violin plot in ggplot2 【发布时间】:2021-12-23 01:58:42 【问题描述】:

我正在努力按照我想要的方式格式化这个小提琴情节。

首先,我想知道如何使绘图的轮廓、均值条和误差条与每个点上显示的点颜色相同,同时移除这些点的黑色轮廓并将它们的形状更改为相同的形状对于每个平均值。其次,我想知道如何降低 x 轴上绘图的宽度并对误差线做同样的事情,这样它们就不会覆盖每把小提琴的整个宽度。

这是我目前拥有的代码:

cbPalette <- c("#999999", "#E69F00", "#56B4E9", "#009E73", "#F0E442", "#0072B2", "#D55E00", "#CC79A7")
#
Dta_lng %>% 
  ggplot(aes(x= Group, y= `Glucose m+6`, shape=Group)) +
  geom_violin() +
  geom_errorbar(stat = "summary", fun.data = "mean_sdl", 
                fun.args = list(mult = 1),
                position =  position_dodge(width = 0.9)) +
  geom_jitter(aes(fill=Group),width=0.1, alpha=0.6, pch=21, color="black") +
 #Adjusting limits on Y axis to encompass all data and mimic figure 1a
   ylim(0.0,0.6) +
#Adding colours manually. Original figure is not colour blind friendly so colour blind friendly palette will be used.
  scale_fill_manual(values=cbPalette) + 
  theme_classic() +
  # Inserted mean with the corresponding point shapes from original figure. Size versus the other points was increased so the mean is easily identified.
  stat_summary(fun.y=mean, geom="point", shape=c(16,15), size=3)

数据框如下所示:

Dta_lng

Group Glucose m+6
Efficient 0.4770
Efficient 0.3760
Efficient 0.4960
Efficient 0.3250
Efficient 0.0890
Efficient 0.0460
Efficient 0.2130
Efficient 0.0820
Efficient 0.3590

低效因素也列在左栏中。

【问题讨论】:

【参考方案1】:

您应该始终为我们提供一些最少的数据来复制您的结果。

对于颜色,相应的参数是col = 'color',对于点你应该尝试fill = 而不是col = 。在美学上尝试使用group = Group 而不是shape = Group,这样您就可以自己指定形状。

虽然不知道你的第二个问题。

【讨论】:

干杯我会试试的。我刚刚在原始帖子中添加了一些示例数据。

以上是关于在ggplot2中格式化小提琴图的主要内容,如果未能解决你的问题,请参考以下文章

R语言ggplot2可视化:ggplot2可视化半小提琴图(Half Violin Plots)

R语言ggplot2可视化:ggplot2可视化水平半小提琴图(Horizontal Half Violin Plots)

用ggplot2分割小提琴图

R语言使用ggplot2包使用geom_violin函数绘制小提琴图(水平小提琴图垂直小提琴图边缘不截断小提琴图)实战

R语言使用ggplot2包的快速可视化函数qplot绘制分组小提琴图实战

R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(添加箱图带缺口的小提琴图小提琴图)实战