用R语言进行数据可视化的综合指南(二)

高级可视化效果


什么是Hexbin Binning?


如果在同一个地方有很多点(overplotting),我们可以使用Hexbin包。六边形面元划分是一种二元直方图,对大数量级结构的数据集的可视化非常有用。下面是代码:


>library(hexbin)

>a=hexbin(diamonds$price,diamonds$carat,xbins=40)

>library(RColorBrewer)

>plot(a)



我们也可以创建一个调色板,然后用Hexbin绘图功能以获得更好的视觉效果。下面是代码:


>library(RColorBrewer)

>rf <- colorRampPalette(rev(brewer.pal(40,'Set3')))

>hexbinplot(diamonds$price~diamonds$carat, data=diamonds, colramp=rf)




马赛克拼图


马赛克拼图可以通过数据所占据的面积大小来有效地显示分类数据的相对比例。


> data(HairEyeColor)

> mosaicplot(HairEyeColor)




热图


热图使你能够以两个维度为轴,颜色的强度为第三个维度来进行探索性的数据分析。然而,你需要将数据集转化成矩阵形式。下面是代码:


> heatmap(as.matrix(mtcars))

您也可以使用image()命令做这种类型的可视化:

> image(as.matrix(b[2:7]))




如何汇总大量数据?


您可以使用tabplot包中的tableplot功能,快速汇总大量数据




地图可视化


R语言中最新的东西是通过Javascript库来进行数据可视化。LeafletJavaScript开源库中最受欢迎的一个库,用于互动地图。有关它的内容,请参考https://rstudio.github.io/leaflet/


您可以用下面的代码直接从github安装Leaflet


devtools::install_github("rstudio/leaflet")




制作上述地图的代码是非常简单的:


library(magrittr)

library(leaflet)

m <- leaflet() %>%

addTiles() %>% # Add default OpenStreetMap map tiles

addMarkers(lng=77.2310, lat=28.6560, popup="The delicious food of chandni chowk")

m # Print the map


3维图


R语言的的功能让人闪瞎眼的最简单的方法之一是通过创建一张3维图,而不需要用R语言写一行代码,并且在3分钟内就能完成。这样要求是不是太过分呢?


我们使用R Commander包作为图形用户界面(GUI)。操作步骤如下:


1. 只需安装Rcmdr

2. 使用来自图中的3D绘图选项


下面的代码不是用户输入的,是自动生成的。


便签:当我们交换图的坐标轴时,您应该看到有着相应代码的图,我们是如何使用xlabylab来传递轴标签,图标题用Main函数,颜色是col参数。


>data(iris, package="datasets")

>scatter3d(Petal.Width~Petal.Length+Sepal.Length|Species, data=iris, fit="linear"

>residuals=TRUE, parallel=FALSE, bg="black", axis.scales=TRUE, grid=TRUE, ellipsoid=FALSE)




您还可以使用Lattice包来做3维图。Lattice也可以用于xyplot。下面是代码:


>attach(iris)# 3d scatterplot by factor level

>cloud(Sepal.Length~Sepal.Width*Petal.Length|Species, main="3D Scatterplot by Species")

>xyplot(Sepal.Width ~ Sepal.Length, iris, groups = iris$Species, pch= 20)





相关图(GUIs


相关图帮助我们把相关矩阵内的数据可视化。下面是代码:


> cor(iris[1:4])

Sepal.Length Sepal.Width Petal.Length Petal.Width

Sepal.Length 1.0000000 -0.1175698 0.8717538 0.8179411

Sepal.Width -0.1175698 1.0000000 -0.4284401 -0.3661259

Petal.Length 0.8717538 -0.4284401 1.0000000 0.9628654

Petal.Width 0.8179411 -0.3661259 0.9628654 1.0000000

> corrgram(iris)




R语言有三个主要的GUI包。RCcommanderKMggplotRattle用于数据挖掘,Deducer用于数据可视化。这些有助于自动完成多个工作。


结束语


我真的享受写这篇文章,R语言所用到的各种方式使得它成为世界上最好的数据可视化软件。Python也许在Seaborn(译者注:Seaborn是python中基于matplotlib的统计绘图模块)和ggplot(译者注:ggplot是用于绘图的R语言扩展包在Python的移植)上获得进展,而没有什么能打败在统计数据可视化上拥有绝对数量巨大软件包的R语言。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值