我有一个抖动图,其频率为y轴,类别为x轴。在每个类别中,分为两组:
ggplot(plot_core_FGT_free, aes(x = variable, y = value, colour = origin))+
geom_jitter()+
labs(y = "Frequency", x = "Metadata factors")+
scale_x_discrete(labels = c("Gene duplication", "BGC proximity", "Horizontal gene transfer", "Known target"))+
theme_bw()+
theme(axis.line = element_line(colour = "black"),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank() ,
text = element_text(size = 15),
axis.text.x = element_text(angle = 20, hjust = 1))+
scale_color_grey(start = 0.3, end = 0.7)
我想将这些均值添加到每个类别和组:
mean origin marker
[1,] "0.3715" "free" "Gene duplication"
[2,] "0.15175" "free" "BGC proximity"
[3,] "0.54125" "free" "Horizontal gene transfer"
[4,] "0.10525" "free" "Known target"
[5,] "0.344423076923077" "FGT" "Gene duplication"
[6,] "0.146153846153846" "FGT" "BGC proximity"
[7,] "0.425576923076923" "FGT" "Horizontal gene transfer"
[8,] "0.0790384615384615" "FGT" "Known target"
我尝试使用geom_segment
和各种stat_summary
方法都无济于事,有人可以帮助我吗?
编辑:
ggplot(plot_core_FGT_free, aes(x = variable, y = value, colour = origin))+
geom_boxplot(size = 1)+
geom_point(position = position_jitterdodge(), size = 2, alpha = 0.4) +
labs(y = "Frequency", x = "Metadata factors")+
scale_x_discrete(labels = function(x) stringr::str_replace(x, " ", "\n")) +
scale_x_discrete(labels = c("Gene duplication", "BGC proximity", "Horizontal gene transfer", "Known target"))+
theme(text = element_text(size = 15),
axis.text.x = element_text(angle = 20, hjust = 1))+
theme_minimal()
答案 0 :(得分:2)
我认为后面有一个箱线图看起来不错。
但是我个人真的很难理解您选择的颜色之间的区别...
library(dplyr)
library(ggplot2)
# recreate a mock of your data
df1 <- tibble(value = rnorm(100, 0.3715 ), origin = "free", variable = "Gene duplication")
df2 <- tibble(value = rnorm(100, 0.15175), origin = "free", variable = "BGC proximity")
df3 <- tibble(value = rnorm(100, 0.54125), origin = "free", variable = "Horizontal gene transfer")
df4 <- tibble(value = rnorm(100, 0.10525), origin = "free", variable = "Known target")
df5 <- tibble(value = rnorm(100, 0.344423076923077 ), origin = "FGT" , variable = "Gene duplication")
df6 <- tibble(value = rnorm(100, 0.146153846153846 ), origin = "FGT" , variable = "BGC proximity")
df7 <- tibble(value = rnorm(100, 0.425576923076923 ), origin = "FGT" , variable = "Horizontal gene transfer")
df8 <- tibble(value = rnorm(100, 0.0790384615384615), origin = "FGT" , variable = "Known target")
df <- bind_rows(df1,df2,df3,df4,df5,df6,df7,df8)
您的图表+箱形图:
ggplot(df, aes(x = variable, y = value, colour = origin))+
geom_boxplot(size = 1)+
geom_jitter()+
labs(y = "Frequency", x = "Metadata factors") +
theme_minimal() +
theme(axis.line = element_line(colour = "black"),
panel.background = element_blank(),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank() ,
text = element_text(size = 15),
axis.text.x = element_text(angle = 20, hjust = 1)) +
scale_color_grey(start = 0.3, end = 0.7)
如果可以的话,我建议您使用此选项:
ggplot(df, aes(x = variable, y = value, colour = origin))+
geom_boxplot(size = 1)+
geom_point(position = position_jitterdodge(), size = 2, alpha = 0.4) +
labs(y = "Frequency", x = "Metadata factors")+
scale_x_discrete(labels = function(x) stringr::str_replace(x, " ", "\n")) +
theme_minimal()
答案 1 :(得分:1)
以下将绘制平均线。诀窍是将新的
<a data-id="{{ $student->id }}" class="btn btn-primary butto">view</a>
参数传递给data
。变量geom_segment
是段的长度。该代码已简化为专注于问题。
segm_len
数据
library(ggplot2)
library(dplyr)
segm_len <- 0.8
ggplot(df, aes(variable, value, color = origin)) +
geom_jitter() +
geom_segment(data = dfmean %>% mutate(marker = as.integer(factor(marker))),
aes(x = marker - segm_len/2, xend = marker + segm_len/2,
y = mean, yend = mean,
color = origin)) +
scale_color_grey(start = 0.3, end = 0.7) +
theme(axis.text.x = element_text(angle = 20, hjust = 1))