您好,我认为有一个非常简单的问题,但我不知道如何解决它。
基本上,我有一个
geom_point
图,其中使用了两种方法,并且我希望区分这两种方法中的每一种的形状和颜色。起初它似乎工作正常;然而,一旦我到达传奇,就会发生一些奇怪的事情......
看起来 R 无法识别
guides
参数,具体来说,我无法将图例标题设置为我选择的内容,也无法将其移动到图例本身之上。此外,看起来 R 选择了 geom_label_repel
作为图例中显示的图标...
如果有解决办法,任何建议将不胜感激。预先感谢!
library(readxl)
library(ggplot2)
library(ggrepel)
library(RColorBrewer)
excel_variants <- read_excel("/path/to/papuan_samples_variant-plot.xlsx", 2)
df_variants <- data.frame(excel_variants)
df_variants$sample <- factor(df_variants$sample, levels=c('6103675', '6103673', '6103671'))
#df_variants$approach <- factor(df_variants$approach, levels=c('filtered', 'personalized'))
### PLOT THE DATA
plot <-
ggplot(df_variants, aes(x=sample, y=value, color=approach, shape=approach)) + geom_point(position=position_dodge(width=0.15), size=2) +
theme(plot.title=element_text(face='bold.italic', hjust=.5), legend.title=element_text(face='italic'), legend.position='bottom', legend.direction='horizontal') +
scale_shape_manual(values=c('filtered'=15, 'personalized'=16)) + scale_color_manual(values=brewer.pal(11, "PRGn")[c(3, 9)]) +
ggtitle("SVs metrics") + guides(values=guide_legend(title='graph used', title.position='top', title.hjust=.5)) +
coord_flip()
plot
plot + geom_label_repel(aes(label=labels),
box.padding = 0.5,
point.padding = 0,
segment.color = 'grey50')
您可以尝试在
name
中分配 scale_*()
参数来添加名称。
尝试添加
theme(legend.position = "top")
来设置图例位置。
将
show.legend = F
添加到 geom_label_repel()
调用以删除图例中的字母:
plot <-
ggplot(df_variants, aes(x=sample, y=value, color=approach, shape=approach)) + geom_point(position=position_dodge(width=0.15), size=2) +
theme(plot.title=element_text(face='bold.italic', hjust=.5), legend.title=element_text(face='italic'), legend.position='bottom', legend.direction='horizontal') +
scale_shape_manual(values=c('filtered'=15, 'personalized'=16), name = "My Legend") +
scale_color_manual(values=brewer.pal(11, "PRGn")[c(3, 9)], name = "My Legend") +
ggtitle("SVs metrics") + guides(values=guide_legend(title='graph used', title.position='top', title.hjust=.5)) +
coord_flip()
plot + geom_label_repel(aes(label=labels),
box.padding = 0.5,
point.padding = 0,
segment.color = 'grey50',
show.legend = F)+
theme(legend.position = "top")