文章目录

  • 第1章 R语言入门
  • 1.1 创建R数据
  • 1.1.1 向量 c()
  • 1.1.2 矩阵 matrix()
  • 1.1.3 数组 array()
  • 1.1.4 数据框 data.frame()
  • 1.1.5 因子 factor()
  • 1.1.6 列表 list()
  • 1.2 数据的其他操作
  • 1.2.1 数据读取和保存
  • 1.2.2 生成随机数
  • 1.2.3 数据抽样 sample()
  • 1.3 生成频数分布表
  • 1.3.1 一维、二维列联表 table()
  • 1.3.2 多维列联表
  • 1.3.3 数值数据类别化
  • 第2章 R绘图基础
  • 2.1 R的基本绘图函数
  • 2.1.1 高级绘图函数:产生一副独立的图形
  • 2.1.2 其他高级绘图函数
  • 2.1.3 低级绘图函数:在已有的图形上添加新元素
  • 2.2 图形控制 par()
  • 2.3 图形颜色
  • 2.4 页面布局与图形组合
  • 2.4.1 用par函数布局页面 mfrow mfcol
  • 2.4.2 用layout函数布局页面:大小不同的区域
  • 2.4.3 同时打开多个绘图窗口 dev.new()
  • 第3 章 类别数据可视化
  • 3.1 条形图及其变种
  • 3.1.1 简单的条形图
  • 3.1.2 并列条形图和堆叠条形图
  • 3.1.3 不等宽条形图和脊状图
  • 3.2 树状图
  • 3.2.1 条形树状图
  • 3.2.2 矩形树状图
  • 3.3 马赛克图及其变种
  • 3.3.1 马赛克图
  • 3.3.2 马赛克图的变种
  • 3.4 关联图和独立性检验P值图
  • 3.5 气球图和热图
  • 3.6 南丁格尔玫瑰图
  • 3.7 金字塔图
  • 3.8 饼图及其变种
  • 3.8.1 饼图和扇形图
  • 3.8.2 环状图和弧形图
  • 3.8.3 饼环图和旭日图
  • 第4章 分布特征可视化
  • 4.1 直方图
  • 4.1.1 普通直方图
  • 4.1.2 叠加直方图和堆叠直方图
  • 4.2 核密度图
  • 4.2.1 核密度图和核密度比较图
  • 4.2.2 分类核密度图
  • 4.2.3 核密度山峦图
  • 4.3 箱线图
  • 4.4 小提琴图
  • 4.5 茎叶图
  • 4.6 点图
  • 4.7 带状图
  • 4.8 太阳花图
  • 4.9 海盗图
  • 4.10 分布概要图


第1章 R语言入门

1.1 创建R数据

1.1.1 向量 c()

1.1.2 矩阵 matrix()

1.1.3 数组 array()

dim1 <- c("男","女")
dim2 <- c("赞成","中立","反对")
dim3 <- c("东部","西部","南部","北部")
data <- round(runif(24,50,100))
array(data, c(2,3,4), dimnames=list(dim1,dim2,dim3))

1.1.4 数据框 data.frame()

函数

解释

head()

查看前几行

tail()

查看后几行

str()

查看数据结构

class()

查看数据类型

rbind()

按行合并

cbind()

按列合并

sort()

对向量进行排序

order()

对数据框的数据进行排序

1.1.5 因子 factor()

类别变量(定性变量):分为无序类别变量和有序类别变量
数值变量(定量数据):分为离散变量和连续变量

1.1.6 列表 list()

1.2 数据的其他操作

1.2.1 数据读取和保存

函数

含义

read.csv()

读取外部数据

write.csv()

保存数据

1.2.2 生成随机数

函数

含义

set.seed()

设定随机数种子

rnorm()

正态分布

runif()

均匀分布

rchisq()

卡方分布

1.2.3 数据抽样 sample()

1.3 生成频数分布表

1.3.1 一维、二维列联表 table()

注:addmargins()为列联表添加边际和

1.3.2 多维列联表

ftable("数据", exclude, row.vars, col.vars)
library(vcd)
structable("公式", "数据", direction, subset)

1.3.3 数值数据类别化

cut("数据", breaks, include.lowest, right)
library(actuar)
grouped.data()

第2章 R绘图基础

2.1 R的基本绘图函数

2.1.1 高级绘图函数:产生一副独立的图形

  1. plot函数

属性

含义

type

设置绘图类型

xlim

x轴的数值范围

ylim

y轴的数值范围

log

设置坐标轴是否要取对数

main

图形主标题

sub

图形副标题

xlab

x轴标签

ylab

y轴标签

axes

是否绘制坐标轴

frame.plot

是否绘制图形外框

data2_1 <- read.csv("F:/data/mydata/chap02/data2_1.csv")
attach(data2_1)
par(mfrow=c(2,2), mai=c(0.6,0.6,0.4,0.6),cex=0.7,cex.main=1)
plot(R,Python,main="(a)散点图")
plot(as.factor(性别),xlab="性别",main="(b)条形图")
plot(R~as.factor(性别),xlab="性别",main="(c)箱线图")
plot(as.factor(性别)~R,ylab="性别",main="(d)脊形图")
detach(data2_1)

R语言数据地图可视化 r语言数据可视化实战_开发语言

数据类型

图形

数值

散点图

数值、数值

散点图

因子

条形图

一维列联表

条形图

二维列联表

马赛克图

数据框

散点图矩阵

注:绘制模型的诊断图

par(mfrow=c(2,2), mai=c(0.6,0.6,0.2,0.1),cex=0.6)
model <- lm(R~Python,data=data2_1)
plot(model)
plot("数据1","数据2")

R语言数据地图可视化 r语言数据可视化实战_开发语言_02

2.1.2 其他高级绘图函数

函数

数据类型

图形

barplot()

数值向量、矩阵、列联表

条形图

boxplot()

数值向量、列表、数据框

箱线图

curve()

表达式

曲线

dotchart()

数值向量、矩阵

点图

hist()

数值向量

直方图

matplot()

数值向量、矩阵

矩阵列图

mosaicplot()

多维列联表

马赛克图

pairs()

矩阵、数据框

散点图矩阵

pie()

数值向量、列联表

饼图

stars()

矩阵、数据框

星图

stem()

数值向量

茎叶图

2.1.3 低级绘图函数:在已有的图形上添加新元素

函数

描述

abline()

添加截距为a,斜率为b的直线

arrows()

两点之间绘制线段,并添加箭头

segments()

绘制线段

box()

绘制图形边框

layout()

布局图形页面

legend()

添加图例

lines()

添加直线

mtext()

添加文本

text()

添加文本

points()

添加点

title()

添加标题

xspline()

绘制x样条曲线

par(mai=c(0.7,0.7,0.4,0.4),cex=0.8)
set.seed(100)
x <- rnorm(200)
y <- 3 + 7*x + 2 * rnorm(200)
d <- data.frame(x, y)
plot(x, y, xlab='自变量', ylab='因变量')
grid(col='grey60') # 添加网格线
axis(side=4,col.ticks='blue',lty=1) # 添加坐标轴
polygon(d[chull(d),], lty=6, lwd=1) # 添加多边形
points(mean(x),mean(y),pch=19,cex=4,col=2) # 添加均值点
# 添加均值水平、垂直线
abline(v=mean(x),h=mean(y),lty=2,col='gray30') 
abline(lm(y~x),lwd=2,col=2) # 添加回归直线
lines(lowess(y~x,f=1/6),col=4,lwd=2,lty=6) # 添加拟合曲线
segments(-1,-4,-1.5,10,lty=6,col="blue") # 添加线段
# 添加注释文本
text(-1.9,10,labels=expression('拟合的曲线'),adj=c(-0.1,0.02),col=4)
# 添加带箭头的线段 
arrows(0.5,-10,-1,-4,code=2,angle=25,length=0.06,col=2) 
rect(0.5,-10,1.5,-13,col='pink') # 添加矩形
mtext(expression(hat(y)==hat(a)+hat(b)*x),cex=1.5,side=1,line=-5,
		adj=0.7) # 添加注释表达式
legend('topleft',legend=c('拟合的直线','拟合的曲线'),lty=c(1,6),
		col=c(2,4),cex=0.8,fill=c('red','blue'),
		ncol=1,inset=0.02) # 添加图例
title('散点图及拟合直线和曲线 \n 并为图形添加新元素',cex.main=1.2,
		font.main=4) # 添加标题
box(col=4,lwd=2) # 添加边框

R语言数据地图可视化 r语言数据可视化实战_开发语言_03

2.2 图形控制 par()

参数

描述

参数

描述

adj

设置文本的对齐方式

bg

图形的背景颜色

bty

图周围边框的类型

cex

控制文字和绘图符号的大小

cex.axis

坐标轴文字缩放倍数

cex.lab

坐标轴标签缩放倍数

cex.main

主标题缩放倍数

cex.sub

副标题缩放倍数

col

绘图颜色

col.axis

坐标轴文字颜色

col.lab

坐标轴标签颜色

col.main

主标题颜色

col.sub

副标题颜色

family

文字的字体族

fg

绘图的前景颜色

font

文字的字体

font.axis

坐标轴文字字体

font.lab

坐标轴标签字体

font.main

主标题字体

font.sub

副标题字体

lty

线条类型(1~6)

lwd

线条宽度

mai

设置图形边距大小

pch

绘制点或符号的类型(0~25)

srt

字符串的旋转角度

2.3 图形颜色

colors() # 查看颜色名称列表
library(RColorBrewer)
display.brewer.all(type='all') # 查看R的调色板

注:颜色集合函数

  • rainbow()
  • heat.colors()
  • terrain.colors()
  • topo.colors()
  • cm.colors()
  • gray.colors()

2.4 页面布局与图形组合

2.4.1 用par函数布局页面 mfrow mfcol

2.4.2 用layout函数布局页面:大小不同的区域

参数

解释

mat

由0或正整数组成的矩阵,用于描述绘制的图形

widths

向量,分割页面的列宽度

heights

向量,分割页面的行高度

layout.show()

预览图形的布局

n = 100; set.seed(100); x <- rnorm(n); y <- rexp(n)
layout(matrix(c(1,2,3,4,5,5,6,7,8),3,3,byrow=T),widths=c(2:1),
		heights=c(1:1))
par(mai=c(0.3,0.3,0.2,0.1),cex.main=0.9)
barplot(runif(8,1,8),col=2:7,main='(a)条形图')
pie(1:12,col=rainbow(6),labels="",border=NA,main="(b)饼图")
qqnorm(y,col=1:7,pch=19,xlab="",ylab="",main="(c)Q-Q图")
plot(x,y,pch=19,col=c(1,2,4),xlab="",ylab="",main="(d)散点图")
plot(rnorm(25),rnorm(25),cex=(y+2),col=2:4,lwd=2,xlab="",
		ylab="",main="(e)气泡图")
plot(density(y),col=4,lwd=1,xlab="",ylab="",main="(f)核密度图")
polygon(density(y),col='gold',border='blue')
hist(rnorm(1000),col=3,xlab="",ylab="",main="(g)直方图")
boxplot(x,col=2,main="(h)箱线图")

R语言数据地图可视化 r语言数据可视化实战_r语言_04

2.4.3 同时打开多个绘图窗口 dev.new()

第3 章 类别数据可视化

3.1 条形图及其变种

3.1.1 简单的条形图

data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
library(sjPlot)
plot_frq(data=data3_1, 满意度, type="bar", show.n=T, show.prc=T)

R语言数据地图可视化 r语言数据可视化实战_开发语言_05

3.1.2 并列条形图和堆叠条形图

data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
library(sjPlot)
p1 <- plot_xtab(data3_1$满意度, data3_1$性别, bar.pos="dodge",
                show.n=T, show.prc=T, show.summary=T, show.total=F,
                vjust="center")
p2 <- plot_xtab(data3_1$满意度, data3_1$性别, bar.pos="stack",
                show.n=T, show.prc=T, show.total=T, vjust="middle")
plot_grid(list(p1,p2), margin=c(0.3,0.3,0.3,0.3), tags=c("并列","堆叠"))

R语言数据地图可视化 r语言数据可视化实战_开发语言_06

3.1.3 不等宽条形图和脊状图

library(ggiraphExtra)
library(ggplot2)
library(gridExtra)
data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
p1 <- ggSpine(data3_1, aes(x=满意度, fill=网购次数), position="dodge",
              palette="Reds", labelsize=2.5, ggtitle("不等宽并列"))
p2 <- ggSpine(data3_1, aes(x=满意度, fill=网购次数), position="stack",
              palette="Blues", labelsize=2.5, reverse = T,
              ggtitle("不等宽并列"))
grid.arrange(p1, p2, ncol=1)

R语言数据地图可视化 r语言数据可视化实战_r语言_07

data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
library(ggiraphExtra)
library(ggplot2)
ggSpine(data3_1, aes(x=满意度, fill=网购次数, facet=性别),
        palette="Reds", labelsize=3, reverse=T)

R语言数据地图可视化 r语言数据可视化实战_数据_08

3.2 树状图

3.2.1 条形树状图

data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
library(plotrix)
cols = list(c("#FDD0A2","#FD8D3C"),c("#C6DBEF","#9ECAE1","#6BAED6"),
            c("#C7E9C0","#A1D99B","#74C746"))
sizetree(data3_1, col=cols, showval=T, showcount=T, stacklabels=T,
         border="black", base.cex=0.7)

R语言数据地图可视化 r语言数据可视化实战_开发语言_09

3.2.2 矩形树状图

library(treemap)
data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
tab <- ftable(data3_1)
d <- as.data.frame(tab)
df <- data.frame(d[,-4], 频数=d$Freq)
treemap(df, index=c("性别","网购次数","满意度"),
        vSize="频数", type="index",fontsize.labels=9,
        position.legend="bottom", title="")

R语言数据地图可视化 r语言数据可视化实战_数据_10

3.3 马赛克图及其变种

3.3.1 马赛克图

data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
par(mfrow=c(1,2), mai=c(0.3,0.3,0.2,0.1), cex.main=0.8, font.main=1)
mosaicplot(~性别+网购次数+满意度, data=data3_1, cex.axis=0.7,
           col=c("#E41A1C","#377EB8","#4DAF4A"), off=8, dir=c("v","h","v"),
           main="简单马赛克图")
mosaicplot(~性别+网购次数+满意度, data=data3_1, shade=T, cex.axis=0.7,
           off=8, dir=c("v","h","v"), main="扩展马赛克图")

R语言数据地图可视化 r语言数据可视化实战_开发语言_11

3.3.2 马赛克图的变种

library(vcd)
data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
tab <- structable(data3_1)
p1 <- mosaic(tab, shade=T, labeling=labeling_values, return_grob=T,
             main="显示观测数")
p2 <- mosaic(tab, shade=T, labeling=labeling_values, value_type="expected",
             return_grob=T, main="显示期望频数")
mplot(p1, p2, cex=0.5, layout=c(1,2))

R语言数据地图可视化 r语言数据可视化实战_坐标轴_12

3.4 关联图和独立性检验P值图

library(vcd)
data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
tab <- structable(data3_1)
assoc(tab, shade=T, labeling=labeling_values)

R语言数据地图可视化 r语言数据可视化实战_坐标轴_13

data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
library(sjPlot)
sjp.chi2(data3_1, show.legend=T, legend.title="P值色标",
         title="Pearson卡方独立性检验")

R语言数据地图可视化 r语言数据可视化实战_数据_14

3.5 气球图和热图

library(ggplot2)
library(ggpubr)
library(RColorBrewer)
data3_2 <- read.csv("F://data/mydata/chap03/data3_2.csv")
mat <- as.matrix(data3_2[,2:5])
rownames(mat) <- data3_2[,1]
palette <- rev(brewer.pal(11, "Spectral"))
ggballoonplot(mat, fill="value", rotate.x.text=F,
              scale_fill_gradientn(colors=palette))

R语言数据地图可视化 r语言数据可视化实战_坐标轴_15

data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
ggiraphExtra::ggHeatmap(data3_1, aes(x=满意度,y=网购次数,facet=性别),
                        addlabel=T, palette="Oranges")

R语言数据地图可视化 r语言数据可视化实战_r语言_16

library(ggiraphExtra)
library(ggplot2)
data3_2 <- read.csv("F://data/mydata/chap03/data3_2.csv")
d.long <- reshape2::melt(data3_2, id.vars="支出项目",variable.name="地区",
                         value.name="支出金额")
f <- factor(data3_2$支出项目, ordered=T, levels=data3_2$支出项目)
df <- data.frame(支出项目=f, d.long[,2:3])
ggHeatmap(df, aes(x=支出项目,y=地区,fill=支出金额), polar=T,
          addlabel=T, palette="Reds")

R语言数据地图可视化 r语言数据可视化实战_r语言_17

3.6 南丁格尔玫瑰图

library(RColorBrewer)
library(ggplot2)
data3_2 <- read.csv("F://data/mydata/chap03/data3_2.csv")
f <- factor(data3_2[,1], ordered=T, levels=data3_2[,1])
df <- data.frame(支出项目=f, data3_2[,2:5])
palette <- brewer.pal(8, "Set3")
ggplot(df, aes(x=支出项目, y=北京, fill=factor(北京))) + 
  geom_bar(width=1, stat="identity", colour="black", fill=palette) + 
  geom_text(aes(y=北京, label=北京), color="grey30") + 
  coord_polar(theta="x", start=0) + 
  theme(axis.title=element_text(size=8)) + 
  theme(axis.text.x=element_text(size=7, color="black"))

R语言数据地图可视化 r语言数据可视化实战_开发语言_18

library(ggiraphExtra)
library(ggplot2)
data3_2 <- read.csv("F://data/mydata/chap03/data3_2.csv")
d.long <- reshape2::melt(data3_2, id.vars="支出项目", variable.name="地区",
                         value.name="支出金额")
f <- factor(data3_2[,1], ordered=T, levels=data3_2[,1])
df.rose <- data.frame(支出项目=f, d.long[,2:3])
ggRose(df.rose, aes(x=地区, fill=支出项目, y=支出金额),
       stat="identity", reverse=T)

R语言数据地图可视化 r语言数据可视化实战_开发语言_19

ggRose(df.rose, aes(x=支出项目, fill=地区, y=支出金额),
       stat="identity", reverse=T)

R语言数据地图可视化 r语言数据可视化实战_r语言_20

3.7 金字塔图

data3_3 <- read.csv("F://data/mydata/chap03/data3_3.csv")
library(DescTools)
par(mfrow=c(1,2), mai=c(0.8,0.7,0.3,0.2), cex.main=0.7, font.main=1)
PlotPyramid(lx=data3_3$男, rx=data3_3$女, col=c("cornflowerblue","indianred"),
            lxlab="男", rxlab="女", ylab=data3_3[,1], ylab.x=0, cex.axis=0.7,
            cex.names=0.6, adj=0.5)
PlotPyramid(lx=data3_3$男, rx=data3_3$女, col=c("cornflowerblue","indianred"),
            lxlab="男", rxlab="女", ylab=data3_3[,1], ylab.x=-80000000, 
            gapwidth=0, space=0, cex.axis=0.7, cex.names=0.6, adj=0.5)

R语言数据地图可视化 r语言数据可视化实战_r语言_21

3.8 饼图及其变种

3.8.1 饼图和扇形图

library(ggiraphExtra)
library(ggplot2)
library(gridExtra)
data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
p1 <- ggPie(data=data3_1, aes(pies=网购次数), title="网购次数")
tab <- ftable(data3_1)
df <- as.data.frame(tab)
p2 <- ggPie(data=df, aes(pies=满意度, count=Freq), title="满意度")
grid.arrange(p1,p2,ncol=2)

R语言数据地图可视化 r语言数据可视化实战_开发语言_22

library(plotrix)
data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
tab <- table(data3_1$满意度)
name <- names(tab)
percent <- prop.table(tab)*100
labs <- paste(name, percent, "%", seq="")
fan.plot(tab, labels=labs, max.span=0.9*pi, shrink=0.06, radius=1.2,
         label.radius=1.4, ticks=200, col=c("deepskyblue","lightgreen","pink"))

R语言数据地图可视化 r语言数据可视化实战_r语言_23

3.8.2 环状图和弧形图

library(ggiraphExtra)
library(ggplot2)
library(gridExtra)
data3_2 <- read.csv("F://data/mydata/chap03/data3_2.csv")
p1 <- ggDonut(data3_2, aes(donuts=支出项目, count=北京),
              labelposition=1, labelsize=2.5, xmin=2, xmax=4,
              title="北京")
p2 <- ggDonut(data3_2, aes(donuts=支出项目, count=上海),
              labelposition=1, labelsize=2.5, xmin=2, xmax=4,
              title="上海")
grid.arrange(p1,p2,ncol=2)

R语言数据地图可视化 r语言数据可视化实战_数据_24

3.8.3 饼环图和旭日图

library(ggiraphExtra)
library(ggplot2)
library(gridExtra)
data3_1 <- read.csv("F://data/mydata/chap03/data3_1.csv")
p1 <- ggPieDonut(data3_1, aes(pies=网购次数, donuts=满意度),
                title="网购次数为饼图 满意度为环状图")
p2 <- ggPieDonut(data3_1, aes(pies=满意度, donuts=性别),
                title="网购次数为环状图 性别为饼图")
grid.arrange(p1,p2,ncol=2)

R语言数据地图可视化 r语言数据可视化实战_数据_25

第4章 分布特征可视化

4.1 直方图

4.1.1 普通直方图

data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
library(sjPlot)
plot_frq(data4_1$AQI,type="histogram",show.mean=T,
         show.sd=T,geom.colors="green4")

R语言数据地图可视化 r语言数据可视化实战_开发语言_26

4.1.2 叠加直方图和堆叠直方图

data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
labels <- c("优","良","轻度污染","中度污染","重度污染")
f <- factor(data4_1[,3],ordered=T,levels=labels)
df <- data.frame(质量等级=f,data4_1[,-3])
attach(df)
library(epade)
cols = c("green","yellow","orange","red","purple")
histogram.ade(PM2.5,group=质量等级,col=cols,wall=4,breaks=30,
              bar=T,alpha=0.4)
detach(df)

R语言数据地图可视化 r语言数据可视化实战_坐标轴_27

data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
labels <- c("优","良","轻度污染","中度污染","重度污染")
f <- factor(data4_1[,3],ordered=T,levels=labels)
df <- data.frame(质量等级=f,data4_1[,-3])
par(mfrow=c(1,2),mai=c(0.6,0.6,0.4,0.1),cex.main=0.9,font.main=1)
library(plotrix)
cols = c("green","yellow","orange","red","purple")
histStack(PM10~质量等级,data=df,xlab="PM10",ylab="频数",ylim=c(0,80),
      col=cols,legend.pos="topright",main="(a)PM10的堆叠直方图")
histStack(臭氧浓度~质量等级,data=df,xlab="臭氧浓度",ylab="频数",xlim=c(0,300),
      ylim=c(0,70),col=cols,legend.pos="topright",main="(b)臭氧浓度的堆叠直方图")

R语言数据地图可视化 r语言数据可视化实战_r语言_28

4.2 核密度图

4.2.1 核密度图和核密度比较图

data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
library(sjPlot)
plot_frq(data4_1$AQI,type="density",normal.curve=T,normal.curve.size=2,
         title="AQI的核密度图")

R语言数据地图可视化 r语言数据可视化实战_数据_29

library(reshape2)
library(gridExtra)
library(ggplot2)
data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
d <- data4_1[,c(1,2,3,4,5,8,9)]
df <- melt(d,id.vars=c("日期","质量等级"),variable.name="指标",
           value.name="指标值")
mytheme<-theme(plot.title=element_text(size="9"), # 设置主标题字体大小
               axis.title=element_text(size=9),     # 设置坐标轴标签字体大小
               axis.text=element_text(size=8),        # 设置坐标轴刻度字体大小
               legend.position="right",                 # 设置图例的位置
               legend.text=element_text(size="7"))      # 设置图例字大小
p1 <- ggplot(df) + aes(x=指标值) +
  geom_density(aes(group=指标,color=指标,fill=指标),alpha=0) + 
  mytheme + 
  ggtitle("(a)核密度比较曲线(alpha=0)")
p2 <- ggplot(df) + aes(x=指标值) +
  geom_density(aes(group=指标,color=指标,fill=指标),alpha=0.3) + 
  mytheme + 
  ggtitle("(a)核密度比较曲线(alpha=0.3)")
grid.arrange(p1,p2,ncol=1)

R语言数据地图可视化 r语言数据可视化实战_r语言_30

4.2.2 分类核密度图

4.2.3 核密度山峦图

library(ggridges)
library(ggplot2)
data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
labels <- c("优","良","轻度污染","中度污染","重度污染")
f <- factor(data4_1[,3],ordered=T,levels=labels)
df <- data.frame(质量等级=f,data4_1[,-3])
ggplot(df,aes(x=AQI,y=质量等级,fill=质量等级,height=..density..)) + 
  geom_density_ridges(scale=4,stat="density") + 
  scale_fill_brewer(palette="Blues") + 
  theme_ridges(font_size=10) + 
  theme(legend.position="bottom") +
  labs(title="AQI的山峦图")

R语言数据地图可视化 r语言数据可视化实战_r语言_31

4.3 箱线图

data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
labels <- c("优","良","轻度污染","中度污染","重度污染")
f <- factor(data4_1[,3],ordered=T,levels=labels)
df <- data.frame(质量等级=f,data4_1[,-3])
library(gplots)
cols = c("green","yellow","orange","red","purple")
boxplot2(data=df,臭氧浓度~质量等级,top=T,shrink=1.2,textcolor=cols,
         col=cols,varwidth=T,xlab="质量等级",ylab="臭氧浓度")

R语言数据地图可视化 r语言数据可视化实战_数据_32

4.4 小提琴图

data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
df <- data4_1[,4:9]
library(vioplot)
palette <- RColorBrewer::brewer.pal(6,"Set2")
names = c("PM2.5","PM10","二氧化硫","一氧化碳","二氧化氮","臭氧浓度")
vioplot(df,col=palette,names=names,xlab="指标",ylab="指标值")

R语言数据地图可视化 r语言数据可视化实战_数据_33

4.5 茎叶图

4.6 点图

4.7 带状图

4.8 太阳花图

4.9 海盗图

4.10 分布概要图

# 分析一个变量
data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
attach(data4_1)
library(DescTools)
PlotFdist(AQI,mar=c(0,0,0,0),main="",
          args.hist=list(breaks=20,col=5),
          args.rug=T,
          args.dens=list(bw=6,col=4),
          args.ecdf=list(cex=1.2,pch=16,lwd=2),
          args.curve=list(expr="dnorm(x,mean=mean(AQI),sd=sd(AQI))",lty=6,col="grey60"),
          args.curve.ecdf=list(expr="pnorm(x,mean=mean(AQI),sd=sd(AQI))",lty=6,lwd=2,col="grey60"))
detach(data4_1)

R语言数据地图可视化 r语言数据可视化实战_开发语言_34

# 分析多个变量
data4_1 <- read.csv("F:/data/mydata/chap04/data4_1.csv")
library(aplpack)
plotsummary(data4_1[,4:9],
            type=c("stripes","ecdf","density","boxplot"),
            y.size=4:1,
            design="chessboard",
            mycols="RB",main="")

R语言数据地图可视化 r语言数据可视化实战_数据_35