R语言可视化

版权声明:访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。转载请向作者申请(wwb159874@163.com)并标明出处: https://blog.csdn.net/Domino_b/article/details/79961621

R语言可视化

完整的数据分析流程

1.定义研究问题,定义理想的数据集,确定能够获取什么数据,获取数据,清理数据

2.探索性分析(数据可视化),统计分析/建模(机器学习)

3.解释/交流结果(数据可视化),挑战结果(有没有其他可能),书写报告


数值变量的特征和可视化

数据集中趋势的测量:均值(mean),中位数(median),众数(mode)

数据分散趋势的测量:值域(range),方差(variance),标准差(standard variance),四分位距                                                        (interquartile range)

有关函数:方差 var(x)    标准差sd(x)

稳健统计量(受极端值影响小)

是:中位数,四分位差

否:均值,标准差,值域

箱图

一个数值变量可以用:柱状图,点图

两个数值变量可以用:散点图

分类变量的特征和可视化

一个分类变量的可视化:频率表,条形图

两个分类变量的可视化:关联表,相对频率表,分段条形图,相对频率分段条形图,马赛克图


一个分类变量,一个数值变量:分类箱图



R三大绘图系统

  • 基本绘图系统(Base Plotting System)

需要事先计划;直观地实时反映绘图和分析数据的逻辑

图+修饰

适用于绘制2D图

  • Lattice绘图系统(Lattice Plotting System)

一次成图

适用于观测变量间的交互:在变量z的不同水平,变量y如何随变量x变化

  • ggplot2绘图系统(ggplotw Plotting System)

数据映射到几何客体(点/线/条)的(颜色/大小/形状)

相当于 基本绘图系统+Lattice绘图系统

自动处理标题/文字说明/空间等

允许通过添加注释进行修改


基本绘图系统

绘图函数(graphics包)

plot / hist(条形图) / boxplot(箱图) / points / lines / text / title / axis(坐标轴)

plot()

plot(x,y,...)

重要参数:xlab(坐标轴标签) / ylab / lwd(线宽) / lty(线类型) / pch(点类型) / col(颜色)

par()

?par    内容很多

用于设置全局参数

bg(背景颜色) / mar(边距) / las(标签横竖) / mfrow / mfcol(把当前面板分成几行几列,按行/列填充,多个图的意思)

title()

title(main = "Name")         标题名称

lm()

fit <- lm(Temp ~ Wind, airquality)       线性回归线

abline(fit,lwd = 2)                                  往图里加线,宽度为2

legend("topright", pch = 1, col = c("red","blue","black"),legend = c("Sep","May","Other"))

添加注释  右上角      点类型为1               对应关系


Lattice绘图系统

lattice包

  • xyplot / bwplot / histogram / stripplot / dotplot / splom / levelplot / contourplot
  • 格式 xyplot(y~x | f *g ,data)
  • panel函数,用于控制每个面板内的绘图

grid包

  • 实现了独立于base的绘图系统
  • lattice包基于grid包

Lattice与Base的重要区别

Base绘图函数直接在图形设备上绘图

Lattice绘图函数返回trellis类对象,打印函数将其打印出来,执行命令时自动打印。

library(lattice)                         加载包
xyplot(Temp~Ozone,data=airquality)       看Temp和Ozone之间的关系,airquality是R自带的数据集

airquality$Month <- factor(airquality$Month)                 把月份设置成分类变量
xyplot(Temp~Ozone | Month, data=airquality,layout=c(5,1))    看不同月份下两者的关系


粉色是月份,纵坐标是温度,横坐标是臭氧含量。

panel 例子
panel.abline(v=mean(x),h=mean(y), lty=2)   加线,v是水平线,h是竖直线,线类型为2
panel.lmline(x,y,col="red")                加线性回归线,颜色红色


ggplot2绘图系统(主要使用这个)

Data(数据)感兴趣的变量(data frame)
Aesthetics(美学属性)x-axis / y-axis / color / fill / size / labels / alpha / shape / linear width / linear type
Geometries(几何客体)point / line / histogram / bar / boxplot 
Facets(面板)columns / rows 
Statistics(统计)binning / smoothing / descriptive / inferential
Coordinates(坐标系)cartesian / fixed / polar / limits
Themes(主题)non-data ink
  • 绘图函数

qplot()

类似于Base系统的plot(),参数包含aesthetics / geom / facet ...

隐藏了绘图实现的细节

qplot(Wind, Temp, data=airquality, color=Month)          可以自己比对这几种的不同之处

airquality$Month <- factor(airquality$Month)             把月份设置成分类变量
qplot(Wind, Temp, data=airquality, color=Month)          不同月份就变成了不同颜色,之
                                                         前是渐变色

qplot(Wind, Temp, data=airquality, color=I("red"))        统一红色

qplot(Wind, Temp, data=airquality, shape=Month)                  或者size=Month   

qplot(Wind, Temp, data=airquality, color=I("red"),xlab="Wind(mph)", ylab="Temperature",
main="Wind vs. Temp")                                            可以给坐标轴加标签,给图加标题

qplot(Wind, Temp, data=airquality, color=Month,
      geom = c("point","smooth"))                                几何客体,smooth是回归分析(图1)

qplot(Wind, Temp, data=airquality, facets = .~Month)             ~左右可以互换,行和列会互换,面
                                                                 板中显示多个图,按照月份分开

qplot(Wind, data = airquality)                                   自动选择柱状图
qplot(y=Wind, data = airquality)                                 生成散点图,横坐标是按Wind数据 
                                                                 的顺序

qplot(Wind, data = airquality, fill = Month)                     (图2)

qplot(Wind, data = airquality, geom = "density",color=Month)      density频率分布的轮廓线(图3)
                                                                  也可以改成dotplot等


图一


图二


图三


ggplot()

核心,可以实现qplot()无法实现的功能

调用ggplot()本身并不能实现绘图,要在其基础上添加层(如geom_point() )才可以

ggplot(airquality,aes(Wind,Temp)) +                        数据层,美学属性层  + 
  geom_point(aes(color=factor(Month)),alpha=0.4,size=5)    几何客体层(颜色以月份分类,透
                                                           明度为0.4,大小为5) *图一

ggplot(airquality,aes(Wind,Temp)) + 
  geom_point() +                                           这一层去掉的话就不显示点
  stat_smooth()                                            回归分析 *图二


ggplot(airquality,aes(Wind,Temp)) + 
  stat_smooth(method="lm",se=FALSE,aes(col=factor(Month)))  线性回归,按月份分开,se是
                                                            置信区间(上图阴影区域)*图三

ggplot(airquality,aes(Wind,Temp,col=factor(Month))) +
  geom_point() +
  stat_smooth(method="lm",se=FALSE,aes(group=1,col="all")) +  对所有数据做一条回归线
  stat_smooth(method="lm",se=FALSE)                           *图四

library(RColorBrewer)                      
myColors <- c(brewer.pal(5,"Dark2"),"black")                 自己来控制颜色 
display.brewer.pal(5,"Dark2")                                显示某类颜色
display.brewer.all()                                         显示所有调色板的颜色 

ggplot(airquality,aes(Wind,Temp,col=factor(Month))) +
  geom_point() +
  stat_smooth(method="lm",se=FALSE,aes(group=1,col="ALL")) +
  stat_smooth(method="lm",se=FALSE) +
  scale_color_manual("Month",values = myColors)              这样就能自己控制颜色 *图五


ggplot(airquality,aes(Wind,Temp,col=factor(Month))) +        
  geom_point() +
  stat_smooth(method="lm",se=FALSE) +
  facet_grid(.~Month)                                        面板按月份分开 *图六
 
 + theme_classic()                                           加这层改变主题


图一


图二


图三


图四


图五


图六



R color

pal <- colorRamp(c("red","blue"))                    以红,蓝为端点
pal(0)                                               0 是红色
pal(1)                                               1 是蓝色
pal(seq(0,1,len=10))                                 从中间等距取10个数,颜色渐变

pal <- colorRampPalette(C("red","yellow"))           以红,黄为端点
pal(1)                                               取一个颜色,红色
pal(10)                                              取十个颜色,红到黄渐变

library(RColorBrewer)
brewer.pal.info                                      查看这个调色板的信息
display.brewer.all()                                 这个可以直接看调色板所有颜色

cols <- brewer.pal(3,"Greens")                       从Greens这个组里取3个颜色
pal <- colorRampPalette(cols)                        以这3个颜色为端点
image(volcano,col = pal(20))                         取20个渐变颜色,数据集为volcano,
                                                     画图像
​

完整的数据分析流程

1.定义研究问题,定义理想的数据集,确定能够获取什么数据,获取数据,清理数据2.探索性分析(数据可视化),统计分析/建模(机器学习)3.解释/交流结果(数据可视化),挑战结果(有没有其他可能),书写报告数值变量的特征和可视化数据集中趋势的测量:均值(mean),中位数(median),众数(mode)数据分散趋势的测量:值域(range),方差(variance),标准差(standard variance),四分位距                                                        (interquartile range)有关函数:方差 var(x)    标准差sd(x)稳健统计量(受极端值影响小)是:中位数,四分位差否:均值,标准差,值域箱图一个数值变量可以用:柱状图,点图两个数值变量可以用:散点图分类变量的特征和可视化一个分类变量的可视化:频率表,条形图两个分类变量的可视化:关联表,相对频率表,分段条形图,相对频率分段条形图,马赛克图一个分类变量,一个数值变量:分类箱图

R三大绘图系统

  • 基本绘图系统(Base Plotting System)
需要事先计划;直观地实时反映绘图和分析数据的逻辑图+修饰适用于绘制2D图
  • Lattice绘图系统(Lattice Plotting System)
一次成图适用于观测变量间的交互:在变量z的不同水平,变量y如何随变量x变化
  • ggplot2绘图系统(ggplotw Plotting System)
数据映射到几何客体(点/线/条)的(颜色/大小/形状)相当于 基本绘图系统+Lattice绘图系统自动处理标题/文字说明/空间等允许通过添加注释进行修改

基本绘图系统

绘图函数(graphics包)plot / hist(条形图) / boxplot(箱图) / points / lines / text / title / axis(坐标轴)plot()plot(x,y,...)重要参数:xlab(坐标轴标签) / ylab / lwd(线宽) / lty(线类型) / pch(点类型) / col(颜色)par()?par    内容很多用于设置全局参数bg(背景颜色) / mar(边距) / las(标签横竖) / mfrow / mfcol(把当前面板分成几行几列,按行/列填充,多个图的意思)title()title(main = "Name")         标题名称lm()fit <- lm(Temp ~ Wind, airquality)       线性回归线abline(fit,lwd = 2)                                  往图里加线,宽度为2legend("topright", pch = 1, col = c("red","blue","black"),legend = c("Sep","May","Other"))添加注释  右上角      点类型为1               对应关系

Lattice绘图系统

lattice包
  • xyplot / bwplot / histogram / stripplot / dotplot / splom / levelplot / contourplot
  • 格式 xyplot(y~x | f *g ,data)
  • panel函数,用于控制每个面板内的绘图
grid包
  • 实现了独立于base的绘图系统
  • lattice包基于grid包
Lattice与Base的重要区别Base绘图函数直接在图形设备上绘图Lattice绘图函数返回trellis类对象,打印函数将其打印出来,执行命令时自动打印。
library(lattice)                         加载包
xyplot(Temp~Ozone,data=airquality)       看Temp和Ozone之间的关系,airquality是R自带的数据集

airquality$Month <- factor(airquality$Month)                 把月份设置成分类变量
xyplot(Temp~Ozone | Month, data=airquality,layout=c(5,1))    看不同月份下两者的关系
粉色是月份,纵坐标是温度,横坐标是臭氧含量。
panel 例子
panel.abline(v=mean(x),h=mean(y), lty=2)   加线,v是水平线,h是竖直线,线类型为2
panel.lmline(x,y,col="red")                加线性回归线,颜色红色
 

ggplot2绘图系统(主要使用这个)

Data(数据)感兴趣的变量(data frame)
Aesthetics(美学属性)x-axis / y-axis / color / fill / size / labels / alpha / shape / linear width / linear type
Geometries(几何客体)point / line / histogram / bar / boxplot 
Facets(面板)columns / rows 
Statistics(统计)binning / smoothing / descriptive / inferential
Coordinates(坐标系)cartesian / fixed / polar / limits
Themes(主题)non-data ink
  • 绘图函数
qplot()类似于Base系统的plot(),参数包含aesthetics / geom / facet ...隐藏了绘图实现的细节
qplot(Wind, Temp, data=airquality, color=Month)          可以自己比对这几种的不同之处

airquality$Month <- factor(airquality$Month)             把月份设置成分类变量
qplot(Wind, Temp, data=airquality, color=Month)          不同月份就变成了不同颜色,之
                                                         前是渐变色

qplot(Wind, Temp, data=airquality, color=I("red"))        统一红色

qplot(Wind, Temp, data=airquality, shape=Month)                  或者size=Month   

qplot(Wind, Temp, data=airquality, color=I("red"),xlab="Wind(mph)", ylab="Temperature",
main="Wind vs. Temp")                                            可以给坐标轴加标签,给图加标题

qplot(Wind, Temp, data=airquality, color=Month,
      geom = c("point","smooth"))                                几何客体,smooth是回归分析(图1)

qplot(Wind, Temp, data=airquality, facets = .~Month)             ~左右可以互换,行和列会互换,面
                                                                 板中显示多个图,按照月份分开

qplot(Wind, data = airquality)                                   自动选择柱状图
qplot(y=Wind, data = airquality)                                 生成散点图,横坐标是按Wind数据 
                                                                 的顺序

qplot(Wind, data = airquality, fill = Month)                     (图2)

qplot(Wind, data = airquality, geom = "density",color=Month)      density频率分布的轮廓线(图3)
                                                                  也可以改成dotplot等
图一图二图三ggplot()核心,可以实现qplot()无法实现的功能调用ggplot()本身并不能实现绘图,要在其基础上添加层(如geom_point() )才可以
ggplot(airquality,aes(Wind,Temp)) +                        数据层,美学属性层  + 
  geom_point(aes(color=factor(Month)),alpha=0.4,size=5)    几何客体层(颜色以月份分类,透
                                                           明度为0.4,大小为5) *图一

ggplot(airquality,aes(Wind,Temp)) + 
  geom_point() +                                           这一层去掉的话就不显示点
  stat_smooth()                                            回归分析 *图二


ggplot(airquality,aes(Wind,Temp)) + 
  stat_smooth(method="lm",se=FALSE,aes(col=factor(Month)))  线性回归,按月份分开,se是
                                                            置信区间(上图阴影区域)*图三

ggplot(airquality,aes(Wind,Temp,col=factor(Month))) +
  geom_point() +
  stat_smooth(method="lm",se=FALSE,aes(group=1,col="all")) +  对所有数据做一条回归线
  stat_smooth(method="lm",se=FALSE)                           *图四

library(RColorBrewer)                      
myColors <- c(brewer.pal(5,"Dark2"),"black")                 自己来控制颜色 
display.brewer.pal(5,"Dark2")                                显示某类颜色
display.brewer.all()                                         显示所有调色板的颜色 

ggplot(airquality,aes(Wind,Temp,col=factor(Month))) +
  geom_point() +
  stat_smooth(method="lm",se=FALSE,aes(group=1,col="ALL")) +
  stat_smooth(method="lm",se=FALSE) +
  scale_color_manual("Month",values = myColors)              这样就能自己控制颜色 *图五


ggplot(airquality,aes(Wind,Temp,col=factor(Month))) +        
  geom_point() +
  stat_smooth(method="lm",se=FALSE) +
  facet_grid(.~Month)                                        面板按月份分开 *图六
 
 + theme_classic()                                           加这层改变主题
图一图二图三图四图五图六

R color

pal <- colorRamp(c("red","blue"))                    以红,蓝为端点
pal(0)                                               0 是红色
pal(1)                                               1 是蓝色
pal(seq(0,1,len=10))                                 从中间等距取10个数,颜色渐变

pal <- colorRampPalette(C("red","yellow"))           以红,黄为端点
pal(1)                                               取一个颜色,红色
pal(10)                                              取十个颜色,红到黄渐变

library(RColorBrewer)
brewer.pal.info                                      查看这个调色板的信息
display.brewer.all()                                 这个可以直接看调色板所有颜色

cols <- brewer.pal(3,"Greens")                       从Greens这个组里取3个颜色
pal <- colorRampPalette(cols)                        以这3个颜色为端点
image(volcano,col = pal(20))                         取20个渐变颜色,数据集为volcano,
                                                     画图像
​
阅读更多

没有更多推荐了,返回首页