这是我的数据:
df<-read.table (text=" MD KA PZ
ko1 65 44
ko2 64 43
ko3 56 42
ko4 71 56
ko5 67 66
ko6 88 64
ko7 44 45
ko8 76 33
ko9 33 22
ko10 84 90
", header=TRUE)
我只能得到一个名为 Name1 的 geom_hline
df1<- df %>%
pivot_longer(-1)
df1<-as.data.frame(df1)
gg<- ggplot(df1,aes(MD, value, fill = name))+
geom_col(position = "dodge", color = "black", width = 1)+
scale_fill_manual(values = c("red", "blue"))
cut <- data.frame(yintercept=20, Name1=factor(20))
gg +
geom_hline(aes(yintercept=yintercept, linetype=Name1),data=cut, show.legend=TRUE)
现在我想在 Name1 下添加另一个图例,将 70 作为 Name2。
答案 0 :(得分:1)
试试这个:
library(ggplot2)
#Data
cut <- data.frame(yintercept=20, Name1=factor(20))
cut2 <- data.frame(yintercept=70, Name2=factor(70))
#Plots
gg +
geom_hline(aes(yintercept=yintercept, linetype=Name1),
data=cut, show.legend=TRUE,color='red')+
geom_hline(aes(yintercept=yintercept, color='70'),
data=cut2, show.legend=TRUE,linetype=1)+
scale_color_manual(values='green','Name2')+
labs(fill='Name',color='Name2',linetype='Name1')+
guides(fill=guide_legend(order = 1),
linetype = guide_legend(order = 2,
override.aes = list(color = 'red')),
colour = guide_legend(order = 3))
输出:
如果你想添加一个新的比例,试试这个:
#Code
gg +
geom_hline(aes(yintercept=yintercept, linetype=Name1),
data=cut, show.legend=TRUE,color='red')+
geom_hline(aes(yintercept=yintercept, color='70'),
data=cut2, show.legend=TRUE,linetype=1)+
scale_color_manual(values='green','Name2')+
labs(fill='Name',color='Name2',linetype='Name1')+
guides(fill=guide_legend(order = 1),
linetype = guide_legend(order = 2,
override.aes = list(color = 'red')),
colour = guide_legend(order = 3))+
ggnewscale::new_scale_color()+
geom_hline(aes(yintercept=yintercept, color='90'),
data=cut3, show.legend=TRUE,linetype=1)+
scale_color_manual(values='pink','Name3')