【问题标题】:Why Two Legends are generated by ggplot为什么ggplot会生成两个图例
【发布时间】:2021-09-13 05:08:13
【问题描述】:

我是 R 新手,我需要生成多条线图(双轴)。我不知道为什么 R 会使用下面的代码为我生成 2 个图例。谁能告诉我如何合并这两个传说,谢谢?

library(ggplot2)


loc=rep(1:3, times=6) #x-axis value

Cate=rep(c("Ali", "Ben", "Can", "Don", "Ele", "Fin"), each=3) #category

res=rnorm(18,5,1) #y-axis value

df1=data.frame(loc, res, Cate)

df1$Cate=factor(df1$Cate, levels=c("Ali","Ben","Can","Don","Ele","Fin"))

f=ggplot(data=df1, aes(x=loc, y=res, group=Cate, colour=Cate)) +
  geom_line(aes(linetype=Cate), size=1) +
  labs(title="My Title", x="X-Axis", y="Y-Axis") + 
  scale_y_continuous(n.breaks=8, sec.axis=sec_axis(~exp(.), name="Exp Y-Axis")) +
  scale_colour_discrete(labels=c(expression(paste(italic("Ali"))), expression(paste(italic("Ben"))),
                      expression(paste(italic("Can"))), expression(paste(italic("Don"))),
                      expression(paste(italic("Ele"))), expression(paste(italic("Fin"))))) +
  theme(panel.grid.major=element_blank(), panel.grid.minor=element_blank(), 
        panel.background=element_blank(), axis.line=element_line(color = "black"),
        legend.background=element_blank(), legend.key=element_rect(fill=NA))

f

【问题讨论】:

  • 你需要哪一个?

标签: r ggplot2


【解决方案1】:

theme代替scale_colour_manual

ggplot(data=df1, aes(x=loc, y=res, group = Cate, colour=Cate)) +
  geom_line(aes(linetype=Cate), size=1) +
  labs(title="My Title", x="X-Axis", y="Y-Axis") + 
  scale_y_continuous(n.breaks=8, sec.axis=sec_axis(~exp(.), name="Exp Y-Axis")) +
  theme(legend.text = element_text(face = "italic"))+
  theme(panel.grid.major=element_blank(), panel.grid.minor=element_blank(), 
        panel.background=element_blank(), axis.line=element_line(color = "black"),
        legend.background=element_blank(), legend.key=element_rect(fill=NA))

【讨论】:

    猜你喜欢
    • 2018-10-18
    • 2015-06-02
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 2023-04-09
    • 2022-01-09
    • 2011-10-18
    相关资源
    最近更新 更多