全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
6749 4
2017-03-30
我已按网上查到的方法做出了双坐标图,但仍有两个问题不知如何解决:1. 右边y轴与图片分离,如何调整?
2. 我已将背景和网格线去除,为何图中还有白线呢?

我所用代码:
library(ggplot2)
library(gtable)
library(grid)

PLSM<-read.csv("PLSM.csv")
PLSM$mon<-factor(as.integer(rownames(PLSM)),labels=PLSM$mon) ## 设置x轴顺序

# two plots
p1 <- ggplot(PLSM, aes(x=mon))
p1 <- p1 + geom_bar( aes(y=pre),stat="identity" , width = 0.5, fill = "cornflowerblue", colour="black")   ##  图层,柱大小.颜色
p1<-  p1 + geom_line(aes(x=mon,y=lea,group=treat,colour=treat)) + geom_point(aes(x=mon,y=lea,group=treat,colour=treat,shap=treat))+ theme_bw()+theme(panel.grid.major=element_line(colour=NA))

p2 <- ggplot(PLSM, aes(x=mon,y=sm, group=treat,colour=treat)) + geom_point() +geom_line() +theme_bw() %+replace%(theme(panel.background = element_rect(fill = NA))+theme(panel.grid.major=element_line(colour=NA)))

# extract gtable
g1 <- ggplot_gtable(ggplot_build(p1))
g2 <- ggplot_gtable(ggplot_build(p2))

# overlap the panel of 2nd plot on that of 1st plot
pp <- c(subset(g1$layout, name == "panel", se = t:r))
g <- gtable_add_grob(g1, g2$grobs[[which(g2$layout$name=="panel")]],pp$t, pp$l,pp$b, pp$l)

# axis tweaks
ia <- which(g2$layout$name == "axis-l")
ga <- g2$grobs[[ia]]
ax <- ga$children[[2]]
ax$widths<−rev(ax$widths)
ax$grobs<−rev(ax$grobs)
ax$grobs[[1]]$x <- ax$grobs[[1]]$x - unit(1, "npc") + unit(0.15, "cm")
g <- gtable_add_cols(g, g2$widths[g2$layout[ia, ]$l],length(g$widths) - 1)
g <- gtable_add_grob(g, ax, pp$t,length(g$widths) - 1, pp$b)

# draw it
grid.draw(g)


fig1.jpg
数据见附件
PLSM.xlsx
大小:(9.99 KB)

 马上下载


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-3-31 10:17:04
第二个问题已解决,将p2改写为p2 <- ggplot(PLSM, aes(x=mon,y=sm, group=treat,colour=treat)) + geom_point() +geom_line() +theme_bw() %+replace%(theme(panel.background = element_blank())+theme(panel.grid.major=element_blank())+theme(panel.grid.minor=element_blank()))
即添加theme(panel.grid.minor=element_blank()),作用是将次网格线去掉。

第一个问题还请高手帮忙解决!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-6-6 11:17:35
luzaijiaoxia06 发表于 2017-3-31 10:17
第二个问题已解决,将p2改写为p2
请问第一个问题解决了吗
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-13 16:31:46
LXBXP 发表于 2017-6-6 11:17
请问第一个问题解决了吗
抱歉,好久没来论坛了!问题已解决,用+theme(legend.position=c ( , ) 定义图例位置就可以
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-5-15 20:59:37
luzaijiaoxia06 发表于 2017-12-13 16:31
抱歉,好久没来论坛了!问题已解决,用+theme(legend.position=c ( , ) 定义图例位置就可以
很喜欢楼主这种负责的人,你的回复大大提高了我们的工作效率,向你表示敬意
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群