【问题标题】:Double labels on x-axis for ggplot2ggplot2 的 x 轴上的双标签
【发布时间】:2015-02-19 20:16:19
【问题描述】:

我正在使用 ggplot2 在同一张图上绘制两个不同的离散变量,而我为这两个变量获得的中断显然是不同的。我想用所述标签的叠加值来标记 x 轴上的中断,而不是彼此相邻,我设法做到了,但在小图上并没有真正起作用(标签重叠)。

这是我正在使用的代码:

plot<-ggplot(data, aes(xcut,modx, group=1))+ 
  geom_smooth(aes(color="red"), se=F, linetype="dotted", size=1.25)+ 
  geom_line(data=data,aes(xcut,lowerx, color="red4"), size=1.5)+
  geom_line(data=data,aes(xcut,upperx, color="red4"), size=1.5)+
  geom_ribbon(data=data, aes(xcut,ymin=lowerx,ymax=upperx), fill="lightpink", alpha=0.4)+

  geom_smooth(data=databis, aes(xcut,modx, group=1, color="green"), se=F, linetype="dotted", size=1.25)+ 
  geom_line(data=databis,aes(xcut,upperx, color="green4"), size=1.5)+
  geom_line(data=databis,aes(xcut,lowerx, color="green4"), size=1.5)+
  geom_ribbon(data=databis, aes(xcut,ymin=lowerx,ymax=upperx), fill="chartreuse1", alpha=0.4)+

  ylim(min(data$lowerx,databis$lowerx),max(data$upperx,databis$upperx))+

  scale_colour_manual(name = 'Legend', 
                      values =c('red'='red','green'='green', 'green4'='green4', 'red4'='red4'), labels = c('','','',''))+
  scale_size_area() + 
  xlab("") +
  ylab("")+
  labs(title='')

plot<-plot + scale_x_discrete(breaks=c(1:10), labels=c(label6Ex$label))

很抱歉,由于需要大量数据,我无法提供一个有效的示例。基本上我使用“x”变量,一个相关的“modx”变量和一个离散变量“xcut”,它只是“x”切割十个中断。我有两个不同的数据框(data 和 databis),其中所有变量的定义都类似,但显然两个 dfs 的标签不同。我最后添加的标签已经单独确定;正如我所说,我试图为每个中断添加两个标签:

plot<-plot + scale_x_discrete(breaks=c(1:10), labels=c(paste(labeldatax$label,labeldatabisx$label,sep=" - ")))

这给了我graph for the x and xbis variables with both labels

但是让两个标签垂直叠加对我来说会更方便。欢迎任何有关此事的帮助!

提前致谢。

【问题讨论】:

  • 我不敢相信它这么简单......非常感谢,它工作得很好!
  • 太棒了!我将其作为答案重新发布,以便您可以关闭问题,如果这是最佳解决方案。

标签: r ggplot2 axis-labels


【解决方案1】:

只需将sep=" - " 替换为sep="\n"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多