R ggplot

文章目录

  • ggplot图形分解
    • 1. ggplot中的par(mfrow = c(3,1))如何实现
    • 2. ggplot分解
      • A. 给每个点上都加上数值标签:geom_text()
      • B. ggplot()设置,单组数据
      • B. 点的设置:geom_point()
      • C.线的设置:geom_line()
      • D. 轴范围xlim(),横纵轴名称xlab(),ylab()
  • 全部代码

如果图里面有你想看到的,希望调整的细节,就继续往下探索吧
R ggplot_第1张图片

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)

你可能感兴趣的:(ggplot,R语言)