美文网首页
ggplot2复杂做图:中国贫困人口变化图

ggplot2复杂做图:中国贫困人口变化图

作者: 冬之心 | 来源:发表于2019-05-13 17:45 被阅读0次

title: "中国贫困人口变化图"
author: "wintryheart"
date: "2019年5月13日"
output: html_document


knitr::opts_chunk$set(echo = TRUE, warning=FALSE, message=FALSE)
load("C:\\Users\\wintryheart\\Documents\\poor2018.RData")
attach(poor)
library(ggplot2)

确定共同的X轴

p1 <- ggplot(poor, aes(x=year))

添加不同的线,标识不同线的颜色代表含义

p2 <- p1+geom_point(aes(y=p1978, color="1978年标准"))+geom_point(aes(y=p2008, color="2008年标准"))+geom_point(aes(y=p2010,color="2010年标准"))
unnamed-chunk-3-1.png

修改坐标轴的刻度,年份间隔设置为2,强制人口数的取值区间为[0,90000]。

p3 <- p2 + scale_x_continuous(breaks=seq(1975,2020,2)) + scale_y_continuous(breaks = c(0, 5000, 10000, 25000, 50000, 75000, 90000), limits=c(0,90000), labels = c("0", "5K", "10K","25K", "50K", "75k", "90K"))
unnamed-chunk-4-1.png

修改坐标轴刻度标签的角度,旋转45度

p4 <- p3 + theme(axis.text.x = element_text(angle=45, hjust=1))
unnamed-chunk-5-1.png

修改坐标轴标签,添加图标题,修改图标标题

p5 <- p4 + labs(x="年份", y="贫困人口:万人", title="中国贫困人口三十年变化", color="贫困标准")
unnamed-chunk-6-1.png

标题居中,修改图例位置

p6 <- p5+theme(plot.title = element_text(hjust = 0.5), legend.position="right")
unnamed-chunk-7-1.png

给数据点标注数据。vjust为正,标记在数据点下方;为负,标记在上方。

p7 <- p6 +geom_text(aes(y=p2010, label=p2010), size=2.5, vjust=-2)
unnamed-chunk-8-1.png

用caption在图的底部添加注释,默认右对齐. hjust代表水平对齐,0将左对齐,0.5将居中,1将右对齐。

p8 <- p7+labs(caption="1. 1978年标准:1978-1999年称为农村贫困标准,2000-2007年称为农村绝对贫困标准。")+
  theme(plot.caption  = element_text(hjust = 0.5))

长标题换行用\n, 或者直接回车。

p9 <- p7+labs(caption="注: 1. 1978年标准:1978-1999年称为农村贫困标准,2000-2007年称为农村绝对贫困标准。
      2. 2008年标准:2000-2007年称为农村低收入标准,2008-2010年称为农村贫困标准。 
      3. 2010年标准:即现行农村贫困标准。现行农村贫困标准为每人每年2300元(2010年不变价)。")+
  theme(plot.caption  = element_text(hjust = 0))
unnamed-chunk-10-1.png

注:labs函数中caption参数中,文字换行对齐的问题。(不断试出来的经验,并不理解为什么)

  • 换行可以直接回车。上图中用的回车。
  • 为了对齐,需要加空格。 "注:"包含一个中文字符和一个标点字符,共占3个字符位,需要打三个空格。
  • \n也可以换行,但是\n后面加3个空格,是没有用的。
  • 可以用&emsp;作为空格的转义字符来对齐。

相关文章

网友评论

      本文标题:ggplot2复杂做图:中国贫困人口变化图

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