美文网首页
ggplot作图设置双坐标轴:各行其是

ggplot作图设置双坐标轴:各行其是

作者: KS科研分享与服务 | 来源:发表于2022-07-29 11:35 被阅读0次

很多时候我们做柱状图组合折线图,或者双变量折线图,这时候需要设置双坐标轴,如果两组数据数值相差太大,会使得图的展示不合理,设置双坐标轴,各自使用各自坐标,则会对比明显。双坐标轴作图prism和original都可以实现,这里我们使用ggplot2实现。

读入数据并加载R包。

df<-read.csv("A.csv",header = T)
library(ggpubr)
library(scales)
library(ggplot2)
colnames(df)

作图。

ggplot(df, aes(y=M0_like,x=Diameter))+
  geom_line(color="#6FB585")+
  geom_point(size=3,color="#6FB585")+
  geom_line(aes(y=M1_like,x=Diameter), color="#E8BF80")+
  geom_point(aes(y=M1_like, x=Diameter),size=3,color="#E8BF80")
image.png

设置双坐标。


ggplot(df, aes(y=M0_like,x=Diameter))+
  geom_line(color="#6FB585")+
  geom_point(size=3,color="#6FB585")+
  geom_line(aes(y=M1_like,x=Diameter), color="#E8BF80")+
  geom_point(aes(y=M1_like, x=Diameter),size=3,color="#E8BF80")+
  scale_y_continuous(sec.axis = sec_axis(~.*1, name = 'M1_like'))+
  theme_bw()+
  theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank())+
  theme(panel.border = element_blank())+
  theme(axis.line = element_line(colour = "black",size = 1))+
  theme_classic(base_size = 15)
image.png

虽然设置了双坐标,但是可以看出,右侧与左侧相同,黄色折线由于数值小,压的很低,看不出效果,所以需要调整。


ggplot(df, aes(y=M0_like,x=Diameter))+
  geom_line(color="#6FB585")+
  geom_point(size=3,color="#6FB585")+
  scale_y_continuous(expand = c(0,0),limits = c(0,6500),
                        sec.axis = sec_axis(~./5,
                                            name = 'M1_like',
                                            breaks = seq(0,1000,200)))+
  geom_line(aes(y=`M1_like`*5,x=Diameter), color="#E8BF80")+
  geom_point(aes(y=`M1_like`*5, x=Diameter),size=3,color="#E8BF80")+
  theme_bw()+
  theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank())+
  theme(panel.border = element_blank())+
  theme(axis.line = element_line(colour = "black",size = 1))+
  theme_classic(base_size = 15)
image.png

这样就解决问题了!但是legend要添加!

觉得小编内容有用的、有意思的,点赞、分享、关注一下呗!更多精彩内容请关注我的公众号《KS科研分享与服务》!

相关文章

网友评论

      本文标题:ggplot作图设置双坐标轴:各行其是

      本文链接:https://www.haomeiwen.com/subject/uotqwrtx.html