文章目录
如果图里面有你想看到的,希望调整的细节,就继续往下探索吧
ggplot图形分解
1. ggplot中的par(mfrow = c(3,1))如何实现
- library(Rmisc)、 library(ggplot),multiplot()函数
library(Rmisc)
library(ggplot)
g1 <-
g2 <-
g3 <-
#中间放你的三个ggplot(g1,g2,g3)图
multiplot(g1,g2,g3,cols = 1)
#cols 表示的是你想放几列,如果是2列的话,先第一列放满,再放第二列
2. ggplot分解
A. 给每个点上都加上数值标签:geom_text()
- geom_text(label=paste(value, “”, sep = “”) ,colour = “black”, vjust=-0.5,size = 2.5)
说明:
⇒ \Rightarrow ⇒ colour 表示字体颜色。
⇒ \Rightarrow ⇒ vjust 表示位置,越负值,位置越往上;越正值,位置越往下。
⇒ \Rightarrow ⇒ size 表示字体大小
B. ggplot()设置,单组数据
以g1的ggplot为例
- ggplot(data = tempdata2, mapping = aes(x = tempdata2$年份, y = tempdata2$人数,group=1))
说明:
⇒ \Rightarrow ⇒ data = :你的数据
⇒ \Rightarrow ⇒ mapping = aes(x = 横轴,y = 纵轴,group = 1)
一定要有group=1,你只有一组数据的嘛,没有这个你会报错的,好像是什么aesthetic错误。。。
⇒ \Rightarrow ⇒ 如果你想你的数据以升序的形式展现出来,
在mapping 的x = 加上reorder(横轴,纵轴),即:
mapping = aes(x = reorder(横轴,纵轴),y = 纵轴,group = 1)
B. 点的设置:geom_point()
举个栗子:
geom_point(size=3,colour= 8,shape = 15)
说明:
⇒
\Rightarrow
⇒ size: 大小
⇒
\Rightarrow
⇒ colour:颜色;1黑色,2红色,3绿色,4.深蓝,5天蓝,6粉色,7黄色,8灰色;
⇒
\Rightarrow
⇒ shape:形状;15实心方块,16实心圆,17实心三角
C.线的设置:geom_line()
geom_line(linetype=“dashed”)
说明:
⇒
\Rightarrow
⇒ linetype=“dashed” :线的形状为虚线形,dotted 线的形状为点形
D. 轴范围xlim(),横纵轴名称xlab(),ylab()
全部代码
library(Rmisc)
apply(tempdata2[,2:4], 2, range)
g1 <- ggplot(data = tempdata2, mapping = aes(x = tempdata2$年份, y = tempdata2$人数,group=1)) +
geom_point(size=3,colour= 8,shape = 15) + ylim(min(tempdata2$人数),max(tempdata2$人数)+40) +
xlab("") + ylab("人数") +geom_line(linetype="dashed") +
geom_text(label=paste(tempdata2$人数, "", sep = "") ,colour = "black", vjust=-0.5,size = 2.5)
g2 <- ggplot(data = tempdata2, mapping = aes(x = tempdata2$年份, y = tempdata2$总住院天数,group=1)) +
geom_point(size=3,colour=5,shape = 17) + ylim(min(tempdata2$总住院天数),max(tempdata2$总住院天数)+1000) +
xlab("") + ylab("总住院天数") +geom_line(linetype="dashed") +
geom_text(label=paste(tempdata2$总住院天数, "", sep = "") ,colour = "black", vjust=-0.5,size = 2.5)
g3 <- ggplot(data = tempdata2, mapping = aes(x = tempdata2$年份, y = tempdata2$平均住院天数,group=1)) +
geom_point(size=3,colour= 6,shape = 16) + ylim(min(tempdata2$平均住院天数),max(tempdata2$平均住院天数)+2) +
xlab("年份") + ylab("平均住院天数") +geom_line(linetype="dashed") +
geom_text(label=paste(tempdata2$平均住院天数, "", sep = "") ,colour = "black", vjust=-0.5,size = 2.5)
multiplot(g1,g2,g3,cols = 1)