如何解决如何使用ggbarplot将单个数据点添加到条形图中? 添加抖动不起作用,点图也不起作用
我很难用ggbarplot在条形图上添加单个数据点。我似乎有一个问题,尤其是在多组数据(使用填充或颜色)上。我尝试了几种添加点的方法,但是它们要么导致错误(添加抖动),要么点未正确对准正确的条(添加点图)。任何帮助将不胜感激。
示例数据:
library(ggpubr)
#dataframe
ER <- read.table(header=TRUE,text="
Sex Group ER
M V 1046
M V 1290
M Z 1202
M Z 1056
F V 8000
F V 7859
F Z 4000
F Z 3409
")
如果使用“ add = c(point)”,我可以使其正常工作,但是当我尝试使用“ add = c(jitter)”时,会导致错误(“ position_jitterdodge()'至少需要一种美学我已经看过类似的问题,但是通常可以通过将分组因子添加到“填充”而不是“颜色”中来解决。我都尝试了这两种方法,但均无济于事。
e <- ggbarplot(ER,x = "Sex",y = "ER",title = "Arcuate Nucleus",ylab= "ER Labeling",xlab = "Group",color = "Group",add = c("mean_se","jitter"),add.params = list(color = "black"),palette = "jco",position = position_dodge(.8))
print(e)
尝试使用“ add = c(“ dotplot)”会导致点混在第二组之间,并显示在两个并排的组之间。
e2 <- ggbarplot(ER,"dotplot"),position = position_dodge(.8))
print(e2)
这似乎可行...但是我真的很想使用不同的颜色,形状并增加抖动。下面的示例。
e3 <- ggbarplot(ER,"point"),position = position_dodge(.8)) + theme(axis.line = element_line(size = 0.9),axis.ticks = element_line(size = 0.9))
print(e3)
解决方法
问题在于,使用add.params(color = "black")
会覆盖躲避点所需的分组(color = "Group"
)。因此,删除add.params(color = "black")
将使您的代码正常工作。如果您想要黑点和误差线,可以通过例如通过将所有组的颜色设置为scale_color_manual
来"black"
:
library(ggpubr)
#> Loading required package: ggplot2
ER <- read.table(header=TRUE,text="
Sex Group ER
M V 1046
M V 1290
M Z 1202
M Z 1056
F V 8000
F V 7859
F Z 4000
F Z 3409
")
ggbarplot(ER,x = "Sex",y = "ER",title = "Arcuate Nucleus",ylab= "ER Labeling",xlab = "Group",color = "Group",fill = "Group",add = c("mean_se","jitter"),palette = "jco",position = position_dodge(.8)) +
scale_color_manual(values = c(V = "black",Z = "black"))
编辑
问题在于ggpubr
之类的软件包提供了很多现成的功能。付出的“代价”是开箱即用的解决方案有其局限性。如果您想更好地控制图表的外观,则必须使用ggplot2(至少部分地)进行操作,例如为点着色可以使用geom_jitter
使点抖动。在这里,我更改了点的形状,以便可以添加黑色轮廓。不幸的是,无法更改fill
的颜色以及抖动填充要求填充aes:
ggbarplot(ER,add = c("mean_se"),Z = "black")) +
geom_jitter(aes(Sex,ER,fill = Group),shape = 21,color = "black",position = position_jitterdodge(jitter.height = .1,jitter.width = .2))
另一种选择是使用例如
geom_jitter(aes(Sex,color = "grey",jitter.width = .2))
这可以让您“充满”,例如“灰色”点,但没有轮廓。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。