R:使用scale_y_continuous(sec.axis)和coord_trans(log10)的两个y轴图

时间:2018-10-09 22:19:15

标签: r ggplot2 dplyr

我正在尝试绘制2y轴图;左边是实际值,右边是%值。除此之外,我还需要在左侧的y轴上应用coord_trans,以更好地可视化较小的值。但是,当我这样做时,右侧的标签不会显示。

此处是数据(example

代码在这里

DAXIS <- ggplot(x1, aes(hour, value_T, colour=season, linetype = variable)) +
  geom_line(size = 1) +
  scale_linetype_manual(c("var"), values=c("solid", "dashed", "dotted"))+ # here to change one name
  geom_point(aes(shape = season), size = 1)+
  labs(x = "hour", y = "T") +
  scale_x_continuous(breaks = c(0, 6, 12, 18, 23), labels= c(0, 6, 12, 18, 24))+
  scale_y_continuous("T",
                 sec.axis = sec_axis(~./2.341598, name = "     [%] ", 
                                     breaks=c(0.2135294, 0.4270588, 0.6405882, 0.8541176,1),
                                     labels = function(b) { paste0(round(b * 100, 0), "%")}))+
  #coord_trans(y = "log10", breaks=c(0.5,1,1.5,1.903738), labels = c(0.5,1,1.5,1.9))+ # attemp 1
  #coord_trans(y = "log10")+  # attemp 2
  scale_color_aaas()+
  theme_bw()+
  theme(legend.direction = "horizontal", legend.position = "bottom", legend.key = element_blank(), 
    legend.background = element_rect(fill = "white", colour = "gray30")) +
  theme(legend.position="bottom", 
    text=element_text(size=18), 
    axis.text.x = element_text(size=15),
    axis.text.y = element_text(size=15))
DAXIS

这里没有coord_trans的输出 without coord_trans

在这里使用coord_trans输出 with coord_trans

非常感谢您的帮助

0 个答案:

没有答案