【问题标题】:Increasing the space between secondary y axis and its title增加辅助 y 轴与其标题之间的空间
【发布时间】:2020-04-07 12:33:05
【问题描述】:

我已经绘制了一个带有两个 y 轴的图表。但是,轴的标题与我的口味有点太接近了。我已经设法与主轴标题保持距离,但不知道如何对辅助轴做同样的事情。这是我使用的代码:

ggplot(data1, aes(x=year))+
geom_line(aes(y= data1$`export share`, colour= "export share"), size = 2)+
  geom_line(aes(y=data1$pm25/coeff, colour= "pm25"), size = 2)+
  scale_x_continuous(breaks = scales::pretty_breaks(n = 17), name = "Year")+
  scale_y_continuous(name="Export Share of GDP", labels = scales::percent, sec.axis=sec_axis(trans = ~.*coeff, name = "PM2.5"))+
  theme(axis.title.y = element_text(margin = margin(t = 0, r = 20, b = 0, l = 0)), axis.text.x = element_text(vjust = 5) ,legend.title = element_blank(), legend.box.margin = margin(0,0,0,10), text = element_text(size = 30)) +
  scale_colour_discrete("",
                        breaks=c("export share", "pm25"),
                        labels=c("Export Share of GDP", "PM2.5")) +
  geom_vline(xintercept=2006) +
   geom_vline(xintercept = 2000)

【问题讨论】:

  • 是的,不幸的是,除了在主轴左侧创建一个边距之外,它似乎没有任何改变。
  • 最好的胜利是我们从未打过的战斗。我建议完全避免使用辅助 y 轴。一个在另一个之下的两个图形会更合适。次要 y 轴可能会产生视觉混乱。我建议这个reading 来说明我的情况。
  • 我会避免使用双 y 轴。在大多数情况下,这不是一个好主意。我会将您的数据长时间旋转,将测量值索引到某个起始数字(2000 年的值),然后将它们绘制在同一轴上。

标签: r ggplot2 axis-labels yaxis


【解决方案1】:

可以通过增加plot.margin的第二个参数来增加右边的边距

+ theme(plot.margin=unit(c(1,3,1,1), "cm"))

然后增加axis.title.y.rightvjust参数:

+ theme(axis.title.y.right = element_text(vjust=2 or 3 or 4))

vjust 的数字越大,离轴越远。当然你把上面两个“主题”命令合二为一了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2013-01-23
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多