R语言绘图:28个实用程序包
卖萌控的博客
点击这里进入电脑版页面!体验更好
R语言绘图:28个实用程序包
2022-6-24 萌小白


全文注释



# 示例参考帮助文档



# 我用Rstudio重现了所有示例



# 初识R语言,请戳我的原创推文“”与“”



# 使用Stata绘图,请戳我的原创推文“”



# 本文以字母顺序排序程序包



# 更多用于R语言绘图的程序包,欢迎在留言区补充



cartogram



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






开发



Sebastian Jeworutzki,



[email protected]



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,



[email protected]



示例



# 安装并加载包



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-Yin



[email protected]



示例



# 安装并加载包



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,



[email protected]



示例



# 安装并加载包



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,



[email protected]



Viliam Simko,



[email protected]



示例



# 安装并加载包



install.packages("corrplot")



library(corrplot)



# 计算相关系数



mycor <- cor(mtcars)



# 绘制相关系数矩阵图



corrplot.mixed(mycor, upper = "ellipse")



dygraphs



时间序列数据的可视化






开发



Dan Vanderkam;



JJ Allaire,



[email protected]



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,



[email protected]



E. D. Chow



示例



# 安装并加载包



install.packages("ellipse")



library(ellipse)



# 绘制相关系数矩阵图



data(mtcars)



fit <- lm(mpg ~ ., mtcars)



plotcorr(summary(fit, correlation = TRUE)$correlation)



fmsb



雷达图






开发



Minato Nakazawa



[email protected]



示例



# 安装并加载包



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,



[email protected]



示例



# 安装并加载包



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,



[email protected]



Jason Crowley,



[email protected]



Di Cook,



[email protected]



Heike Hofmann,



[email protected]



Hadley Wickham,



[email protected]



Francois Briatte,



[email protected]



Moritz Marbach,



[email protected]



Edwin Thoen,



[email protected]



Amos Elberg,



[email protected]



Joseph Larmarange,



[email protected]



示例



# 安装并加载包



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,



[email protected]



Winston Chang,



[email protected]



示例



# 安装并加载包



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,



[email protected]



示例



# 安装并加载包



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,



[email protected]



Nicholas Lewin-Koh;



Martin Maechler,



[email protected]



Deepayan Sarkar,



[email protected]



示例



# 安装并加载包



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,



[email protected]



示例



# 安装并加载包



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,



[email protected]



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,



[email protected]



Kimberly Speerschneider



[email protected]



示例



# 安装并加载包



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,



[email protected]



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,



[email protected]



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,



[email protected]



Chris Parmer,



[email protected]



Toby Hocking,



[email protected]



Scott Chamberlain,



[email protected]



Karthik Ram,



[email protected]



Marianne Corvellec,



[email protected]



Pedro Despouy,



[email protected]



示例



# 安装并加载包



install.packages("plotly")



library(plotly)



# 查看火山数据



head(volcano)



# 绘制火山的三维交互图



p=plot_ly(z = volcano, type = "surface")



p



qcc



统计质量控制






开发



Luca Scrucca,



[email protected]



Greg Snow,



[email protected]



Peter Bloomfield,



[email protected]



示例



# 安装并加载包



install.packages("qcc")



library(qcc)



# 均值为10的序列,加上白噪声



x <- rep(10, 100) + rnorm(100)



# 测试序列,均值为11



new.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,



[email protected]



示例



# 安装并加载包



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,



[email protected]



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,



[email protected]



示例



# 安装并加载包



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,



[email protected]



示例



# 安装并加载包



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,



[email protected]



Romain Francois,



[email protected]



示例



# 安装并加载包



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")
))



版权声明



本文转载自阿虎定量笔记公众号。文章转载只为学术新闻信息的传播,不代表我公众号所持的观点。



发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容