百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

收藏|28个R语言绘图的实用程序包!

bigegpt 2024-08-14 14:52 2 浏览



作者:郑连虎

来源:阿虎定量笔记

本文约2500字,建议阅读20+分钟。

本文为大家介绍了关于R语言绘图方面28个实用程序包。

cartogram


扭曲的地图,以传达统计信息


开发

Sebastian Jeworutzki,sebastian.jeworutzki@ruhr-uni-bochum.de;Timothee Giraud;Nicolas Lambert;Roger Bivand;Edzer Pebesma


示例

# 安装并加载包install.packages("maptools")library(maptools)# 绘制非洲边界data(wrld_simpl)afr=wrld_simpl[wrld_simpl$REGION==2,]plot(afr)# 安装并加载包install.packages("cartogram")library(cartogram)# 使用2005年的非洲人口数据afr_cartogram <- cartogram(afr, "POP2005", itermax=5)# 反映非洲人口特征plot(afr_cartogram)


circlize


圈圈布局、弦图


开发

Zuguang Gu,z.gu@dkfz.de


示例

# 安装并加载包install.packages("circlize")library(circlize)# 生成数据name=c(3,10,10,3,6,7,8,3,6,1,2,2,6,10,2,3,3,10,4,5,9,10)feature=paste("feature ", c(1,1,2,2,2,2,2,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5) , sep="")dat <- data.frame(name,feature)dat <- with(dat, table(name, feature))# 绘制弦图chordDiagram(as.data.frame(dat), transparency = 0.5)


CMplot


圆形曼哈顿图


开发

LiLin-Yinylilin@163.com


示例

# 安装并加载包install.packages("CMplot")library("CMplot")# 绘图CMplot(gwasResults, plot.type="c", r=1.6, cir.legend=TRUE, outward=TRUE, cir.legend.col="black", cir.chr.h=.1 ,chr.den.col="orange", file="jpg", memo="", dpi=300, chr.labels=seq(1,22))


corrgram


相关系数矩阵


开发

Kevin Wright,kw.stat@gmail.com


示例

# 安装并加载包install.packages("iterators")install.packages("corrgram")library(iterators)library(corrgram)# 绘制相关系数矩阵图corrgram(mtcars, order=TRUE, lower.panel=panel.shade, upper.panel=panel.pie,text.panel=panel.txt, main="Correlogram of mtcar intercorrelations")


corrplot


相关系数矩阵


开发

Taiyun Wei,weitaiyun@gmail.com;Viliam Simko,viliam.simko@gmail.com


示例

# 安装并加载包install.packages("corrplot")library(corrplot)# 计算相关系数mycor <- cor(mtcars)# 绘制相关系数矩阵图corrplot.mixed(mycor, upper = "ellipse")


dygraphs


时间序列数据的可视化


开发

Dan Vanderkam;JJ Allaire,jj@rstudio.com;Jonathan Owen;Daniel Gromer;Petr Shevtsov;Benoit Thieurmel


示例

# 安装并加载包install.packages("dygraphs")library(dygraphs)# 时间序列data=data.frame( time=c( seq(0,20,0.5), 40), value=runif(42))str(data)dygraph(data)


ellipse


椭圆


开发

Duncan Murdoch,murdoch@stats.uwo.ca;E. D. Chow


示例

# 安装并加载包install.packages("ellipse")library(ellipse)# 绘制相关系数矩阵图data(mtcars)fit <- lm(mpg ~ ., mtcars)plotcorr(summary(fit, correlation = TRUE)$correlation)


fmsb


雷达图


开发

Minato Nakazawaminato-nakazawa@umin.net


示例

# 安装并加载包install.packages("fmsb")library(fmsb)# 生成数据data=as.data.frame(matrix( sample( 2:20 , 10 , replace=T) , ncol=10))colnames(data)=c("math" , "english" , "biology" , "music" , "R-coding", "data-viz" , "french" , "physic", "statistic", "sport" )data=rbind(rep(20,10) , rep(0,10) , data)# 雷达图参数设置radarchart(data,axistype=1,pcol=rgb(0.2,0.5,0.5,0.9),pfcol=rgb(0.2,0.5,0.5,0.5), plwd=4, cglcol="grey", cglty=1, axislabcol="grey", caxislabels=seq(0,20,5), cglwd=0.8,vlcex=0.8)


forecast


时间序列分析



开发

Rob J Hyndman,Rob.Hyndman@monash.edu


示例

# 安装并加载包install.packages("forecast")library(forecast)# 使用英国每月死于肺病的人数数据fit<- auto.arima(mdeaths)# 设置置信区间forecast(fit, level=c(80, 95, 99), h=3)# 绘制时间序列趋势图plot(forecast(fit), shadecols="oldstyle")


GGally


散点图矩阵




开发

Barret Schloerke,schloerke@gmail.com;Jason Crowley,crowley.jason.s@gmail.com;Di Cook,dicook@monash.edu;Heike Hofmann,hofmann@iastate.edu;Hadley Wickham,h.wickham@gmail.com;Francois Briatte,f.briatte@gmail.com;Moritz Marbach,mmarbach@mail.uni-mannheim.de;Edwin Thoen,edwinthoen@gmail.com;Amos Elberg,amos.elberg@gmail.com;Joseph Larmarange,joseph@larmarange.net


示例

# 安装并加载包install.packages("GGally")library(GGally)# 绘制相关系数矩阵图ggpairs(mtcars, columns = c("mpg", "cyl", "disp"),upper = list(continuous = wrap("cor", size = 10)), lower =list(continuous = "smooth"))


ggplot2

丰富的数据可视化




开发

Hadley Wickham,hadley@rstudio.com;Winston Chang,winston@rstudio.com


示例

# 安装并加载包install.packages("ggplot2")library(ggplot2)# 生成数据variety=rep(LETTERS[1:7], each=40)treatment=rep(c("high","low"),each=20)note=seq(1:280)+sample(1:150, 280, replace=T)data=data.frame(variety, treatment , note)# 绘制箱线图ggplot(data, aes(x=variety, y=note, fill=treatment)) +geom_boxplot()# 生成数据set.seed(345)Sector <- rep(c("S01","S02","S03","S04","S05","S06","S07"),times=7)Year <- as.numeric(rep(c("1950","1960","1970","1980","1990","2000","2010"),each=7))Value <- runif(49, 10, 100)data <- data.frame(Sector,Year,Value)# 绘制区域图ggplot(data, aes(x=Year, y=Value, fill=Sector)) + geom_area()# 安装并加载包install.packages("plotly")install.packages("gapminder")library(plotly)library(gapminder)# 绘制气泡图p <- gapminder %>% filter(year==1977) %>% ggplot( aes(gdpPercap, lifeExp, size = pop, color=continent)) + geom_point() + scale_x_log10() + theme_bw()ggplotly(p)


ggridges


叠嶂图(山峦图)




开发

Claus O. Wilke,wilke@austin.utexas.edu


示例

# 安装并加载包install.packages("ggridges")install.packages("ggplot2")library(ggridges)library(ggplot2)# 使用钻石数据head(diamonds)# 绘制叠嶂图ggplot(diamonds, aes(x = price, y = cut, fill = cut)) + geom_density_ridges() + theme_ridges() + theme(legend.position = "none")


hexbin


二维直方图




开发

Dan Carr,dcarr@voxel.galaxy.gmu.edu;Nicholas Lewin-Koh;Martin Maechler,maechler@stat.math.ethz.ch;Deepayan Sarkar,deepayan.sarkar@r-project.org


示例

# 安装并加载包install.packages("hexbin")install.packages("RColorBrewer")library(hexbin)library(RColorBrewer)# 生成数据x <- rnorm(mean=1.5, 5000)y <- rnorm(mean=1.6, 5000)# 绘制二维散点图bin<-hexbin(x, y, xbins=40)my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))plot(bin, main="", colramp=my_colors, legend=F)


igraph


网络图



示例

# 安装并加载包install.packages("igraph")library(igraph)# 生成数据data=matrix(sample(0:1, 400, replace=TRUE, prob=c(0.8,0.2)), nrow=20)network=graph_from_adjacency_matrix(data , mode='undirected', diag=F )# 输出网络par(mfrow=c(2,2), mar=c(1,1,1,1))plot(network, layout=layout.sphere, main="sphere")


lattice


点图、核密度图、直方图、柱状图、箱线图、散点图、带状图、平行箱线图、三维图、散点图矩阵等








开发

Deepayan Sarkar,Deepayan.Sarkar@R-project.org


示例

# 安装并加载包install.packages("lattice")library(lattice)# 查看火山数据head(volcano)# 绘制火山的三维等高线图contourplot(volcano)# 绘制火山的三维水平图levelplot(volcano)# 绘制火山的三维线框图wireframe(volcano)# 查看汽车数据head(mtcars)# 绘制箱线图bwplot(mtcars$mpg)# 绘制平行坐标图parallelplot(mtcars[1:3])# 绘制散点图矩阵splom(mtcars[c(1,3,4,5)])# 绘制带状图stripplot(mtcars$mpg~factor(mtcars$cyl))


leaflet


交互式地图




开发

Joe Cheng,joe@rstudio.com;Bhaskar Karambelkar;Yihui Xie;Hadley Wickham;Kenton Russell;Kent Johnson;Barret Schloerke;Vladimir Agafonkin;Brandon Copeland;Joerg Dietrich;Benjamin Becquet;Norkart AS;L. Voogdt;Daniel Montague;Kartena AB;Robert Kajic;Michael Bostock


示例

# 安装并加载包install.packages("leaflet")library(leaflet)# 交互式地图m=leaflet()m=addTiles(m)m


likert


李克特量表数据的可视化




开发

Jason Bryer,jason@bryer.org;Kimberly Speerschneiderkimkspeer@gmail.com


示例

# 安装并加载包install.packages("likert")library(likert)# 使用PISA量表数据data(pisaitems)items28 <- pisaitems[, substr(names(pisaitems), 1, 5) == "ST24Q"]# 绘制条形图l28 <- likert(items28)summary(l28)plot(l28)


maps


地图




开发

Richard A. Becker;Allan R. Wilks;Ray Brownrigg


示例

# 安装并加载包install.packages("maps")install.packages("geosphere")library(maps)library(geosphere)# 绘制世界地图map("world")


maptools


地图



开发

Roger Bivand,Roger.Bivand@nhh.no;Nicholas Lewin-Koh;Edzer Pebesma;Eric Archer;Adrian Baddeley;Nick Bearman;Hans-J?rg Bibiko;Steven Brey;Jonathan Callahan;German Carrillo;Stéphane Dray;David Forrest;Michael Friendly;Patrick Giraudoux;Duncan Golicher;Virgilio Gómez Rubio;Patrick Hausmann;Karl Ove Hufthammer;Thomas Jagger;Kent Johnson;Sebastian Luque;Don MacQueen;Andrew Niccolai;Edzer Pebesma;Oscar Perpi?án Lamigueiro;Tom Short;Greg Snow;Ben Stabler;Murray Stokely;Rolf Turner


示例

# 安装并加载包install.packages("maptools")library(maptools)# 绘制非洲边界data(wrld_simpl)afr=wrld_simpl[wrld_simpl$REGION==2,]plot(afr)


performanceAnalytics

绩效指标计算与可视化



开发

Brian G. Peterson,brian@braverock.com;Peter Carl


示例

# 安装并加载包install.packages("PerformanceAnalytics")library(PerformanceAnalytics)# 列出待计算变量mydata <-mtcars[c('mpg','cyl','disp','hp','drat')]# 绘制相关系数矩阵图chart.Correlation(mydata, histogram=TRUE, pch=19)


plotly


交互式可视化




开发

Carson Siever,cpsievert1@gmail.com;Chris Parmer,chris@plot.ly;Toby Hocking,tdhock5@gmail.com;Scott Chamberlain,myrmecocystus@gmail.com;Karthik Ram,karthik.ram@gmail.com;Marianne Corvellec,marianne@plot.ly;Pedro Despouy,pedro@plot.ly


示例

# 安装并加载包install.packages("plotly")library(plotly)# 查看火山数据head(volcano)# 绘制火山的三维交互图p=plot_ly(z = volcano, type = "surface")p


qcc


统计质量控制


开发

Luca Scrucca,luca.scrucca@unipg.it;Greg Snow,greg.snow@ihc.com;Peter Bloomfield,Peter_Bloomfield@ncsu.edu


示例

# 安装并加载包install.packages("qcc")library(qcc)# 均值为10的序列,加上白噪声x <- rep(10, 100) + rnorm(100)# 测试序列,均值为11new.x <- rep(11, 15) + rnorm(15)# 标记出新的点qcc(x, newdata=new.x, type="xbar.one")


qqman


曼哈顿图



开发

Stephen Turner


示例

# 安装并加载包install.packages("qqman")library(qqman)# 使用gwasResults数据绘制曼哈顿图manhattan(gwasResults, chr="CHR", bp="BP", snp="SNP", p="P" )


REmap


地图




开发

Dawei Lang,dawei.lang@supstat.com


示例

# 安装并加载包install.packages("devtools")install_github("lchiffon/REmap")library(devtools)library(REmap)# 标注起始点origin<-c("济南","西安","成都")destination<-c("西安","成都","济南")# 制作迁徙地图dat = data.frame(origin,destination)out = remap(dat,title = "after-graduation trip ",subtitle= "zg434")plot(out)


scatterplot3d


三维散点图




开发

Uwe Ligges,ligges@statistik.tu-dortmund.de;Martin Maechler;Sarah Schnackenberg


示例

# 安装并加载包install.packages("scatterplot3d")library(scatterplot3d)# 生成数据x1=round(rnorm(100,mean=80,sd=1))x2=round(rnorm(100,mean=80,sd=5))x3=round(rnorm(100,mean=80,sd=10))x=data.frame(x1,x2,x3)# 绘制三维散点图scatterplot3d(x[1:3])


TeachingDemos


脸谱图



开发

Greg Snow,538280@gmail.com


示例

# 安装并加载包install.packages("TeachingDemos")library(TeachingDemos)# 生成数据x1=round(rnorm(100,mean=80,sd=1))x2=round(rnorm(100,mean=80,sd=5))x3=round(rnorm(100,mean=80,sd=10))x=data.frame(x1,x2,x3)# 绘制脸谱图faces(x)


treemap


树图



开发

Martijn Tennekes,mtennekes@gmail.com


示例

# 安装并加载包install.packages("treemap")library(treemap)# 生成数据group=c("group-1","group-2","group-3")value=c(13,5,22)data=data.frame(group,value)# 绘制树图treemap(data, index="group", vSize="value", type="index")


vioplot


小提琴图




开发

Daniel Adler,dadler@uni-goettingen.de;Romain Francois,francoisromain@free.fr


示例

# 安装并加载包install.packages("vioplot")library(vioplot)# 生成数据treatment=c(rep("A", 40) , rep("B", 40) , rep("C", 40) )value=c( sample(2:5, 40 , replace=T) , sample(c(1:5,12:17), 40 , replace=T), sample(1:7, 40 , replace=T) )data=data.frame(treatment,value)# 绘制小提琴图with(data , vioplot( value[treatment=="A"] , value[treatment=="B"], value[treatment=="C"], col=rgb(0.1,0.4,0.7,0.7) , names=c("A","B","C") ))


相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...