看书笔记【数据科学:R语言实战 7】


【数据科学:R语言实战】

Chapter 7 数据可视化——R图形

7.1 功能包

  • classIn:包含了单变量组距
  • ggpolot2:具有大量的图形特征
  • gpclib:用于多边形裁剪
  • hexbin:用于双变量数据操作
  • latticist:R与Latticist程序之间的界面
  • mapdata:含有可直接添加至地图的数据
  • maps:包含各种地理区域的地图
  • maptools:含有用于使用地图的访问机制
  • playwith:包含了R和GTK+等其他程序之间的界面
  • RColorBrewer:用于地图着色
  • RgoogleMaps:包含了R中使用的谷歌地图
7.1.1 交互式图形

R与GTK+工具包(or GIMP 是创建图形界面的多平台工具包)配合,可以交互式修改图形。playwith()将若干参数传递至GTK+空间。
playwith()

  • 参数
    expr 包含了用于创建图表的表达式
    title 可选的窗口标题
    labels 标签的特征向量
    data.points 数据点的向量
    viewport 表示数据空间的视野
    parameters 包含了数据的简单控制(键入)
    tools GTK+工具的列表
    ini.actions 最初运行得操作列表
install.packages("playwith")
library("playwith")   ##需要安装GTK+,安装GTK+后需要重新启动R
data <- read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv", sep=";")  #葡萄酒质量数据
plot(data$fixed.acidity)  ##非挥发性酸的简易图
playwith(plot(data$fixed.acidity))  ##之后就可以用GTK+工具包操作图形
7.1.2 latticist功能包

latticist和GTK+有相交知识区域,latticist对R的版本有较高要求。

install.packages("latticist")
library("latticist")
latticist(data$fixed.acidity)
1.双变量分箱显示

hexbin()

  • 参数
    x、y 待使用的双变量数据向量
    xbins x刻度的二进制数量
    shape 绘图区域的形状=y(高度)/x(宽度)
    xbnds、ybnds 水平和垂直限度
    xlab、ylab 可选的水平和垂直标签
    数据源:华盛顿大学提供的机场数据,包含了13000个机场经纬度,用hexbin()核对坐标并表示位置
data <- read.csv("http://faculty.washington.edu/kenrice/sisg-adv/airportlocations.csv")
summary(data)
install.packages("hexbin")
library(hexbin)
bin <- hexbin(data$Latitude,data$Longitude);bin   ##函数的分箱操作
plot(bin) ##经纬度对应xy,颜色深度表示的是密度
2.测绘

maps()生成标准地图,案例中使用的是美国地图

  • 参数
    database 包含world、usa、state、county数据库,默认为world库
    regions 绘制多边形向量:north:boston
    exact 默认FALSE,"TRUE"表示使用确切的区域匹配
    boundary 默认FALSE,“TRUE”表示绘边界
    interior 默认FALSE,“TRUE”表示绘制国内部分
    projection 投影字符串,标准是“mercator”
    parameters 投影参数
    orientation 绘制地图的向量,包含经纬度及旋转
    fill 默认FALSE,“TRUE”表示填充地图
    col 填充颜色
    **plot ** 用于确定是否从函数调回图表
    add 是否将绘图点添加至图表
    namesonly 是否返回区域名称向量
    xlim、ylim 经纬度范围
    wrap 是否省略离开屏幕行
    resolution 分辨率
    bg 是否绘制背景
    mar 使用的页边
    myborder 边界的坐标向量
install.packages("mapdata") #library(mapdata)
map(database="usa", col="gray90", fill=TRUE)  ##usa
3.绘制地图上的点

地图与数据结合
point()

  • 参数
    x 绘制的坐标点
    pch 点的字符
    **col ** 点颜色
    bg 点背景
    cex 膨胀因数,使得某些点较大
    **lwd ** 行宽
library(maps)
library(maptools)
library(RColorBrewer)
install.packages("classInt")
library(classInt)
install.packages("gpclib")
library(gpclib)
library(mapdata)
map("worldHires") ##世界地图
points(data$Longitude,data$Latitude,pch=16,col="red",cex=1)  ##绘制机场位置,

require(graphics)
head(quakes)  ##quakes程序库的地震数据
mean(quakes$mag)
map()
points(quakes$long,quakes$lat,pch=".",col="red",cex=1)  ##完整的世界地图数据
lon <- mean(quakes$lon);lat <- mean(quakes$lat)
orient <- c(lat,lon,0)
x <- c(min(quakes$lon)/2,max(quakes$lon)*1.5)  #存在负数所以对经纬度进行调整
y <- c(min(quakes$lat)-10,max(quakes$lat)+10)
map(database= "world", ylim=y, xlim=x, col="grey80", fill=TRUE)
points(quakes$long,quakes$lat,pch=".",col="red",cex=quakes$mag/2)
5.Google地图

RgoogleMaps()R上的谷歌地图,存在一定的不兼容问题

library(RgoogleMaps)
terrain <-GetMap(center=c(lat,lon),zoom=5,maptype="terrain",destfile="terrain.png",scale=c(320,320)
markers <- cbind.data.frame(quakes$lat,quakes$long,"small","red","")  #表示地震数据
names(markers) <- c("lat","lon","size","col","char")
terrain <- GetMap.bbox(center=c(lat,lon),zoom=5,maptype="terrain",destfile="terrain2.png",lonR=range(quakes$long),latR=range(quakes$lat),markers=markers)
7.1.3 ggplot2功能包
qplot(lat,long,data=quakes,color=mag)  ##斐济地震数据
qplot(lat,long,data=quakes,color=mag,size=depth)
qplot(lat,long,data=quakes,color=mag,size=depth, alpha=0.5) ##因数调整颜色团的碰撞
qplot(height,weight,data=women,geom="line")  ##线性图
qplot(School,data=painters,geom="bar")  ##条形图

data <- read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-white.csv", sep=";")  #葡萄酒质量数据
sa <- ggplot(data, aes(x=residual.sugar, y=alcohol))  ##ggplot需要将绘图信息保存在变量中
sa <- sa + geom_line();sa
##把特征当做Facet来拆分数据,基于酒的质量水平,得到关系图
sa + facet_grid(. ~ quality)  ##.开头为水平布局
sa + facet_grid(quality ~ .)  ##.结尾为垂直布局
####geom_smooth函数添加平滑因数
sa <- ggplot(data, aes(x=residual.sugar, y=alcohol))
sa <- sa + geom_line()  ##拟合图
sa <- sa + geom_smooth();sa  ##光滑拟合图
ggplot(data, aes(x=residual.sugar)) + geom_histogram(binwidth=.5)  ##直方图
ggplot(data, aes(x=residual.sugar)) + geom_density()  ##密度图
bp <- ggplot(data, aes(x=residual.sugar, y=alcohol))  
bp <- bp + geom_boxplot()  ##箱型图,基于酒的质量水平,得到关系图
bp + facet_grid(. ~ quality) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值