美文网首页数据科学与R语言玩转大数据
多维数据可视化之气泡图——各国疫情对比

多维数据可视化之气泡图——各国疫情对比

作者: 枫璃 | 来源:发表于2020-04-30 16:27 被阅读0次

一、气泡图(bubble chart)是什么

气泡图是可用于展示三个变量之间的关系:横轴代表一个变量、纵轴代表一个变量、第三个变量用气泡的大小来表示。

气泡图与散点图相似,不同之处在于:气泡图允许在图表中额外加入一个表示大小的变量进行对比。

二、如何制作气泡图(R语言)

2.0 原始数据格式

原始数据一共4列,county-国家,current-现存确诊,total-累计确诊,dead-死亡:

欧洲疫情.csv

我们下面做一个气泡图,x轴表示累计确诊,y轴表示死亡数,气泡大小表示当前现存确诊:   

2.1 使用symbols函数绘制气泡图

R中自带的symbols函数可以绘制气泡图,不需要安装任何包:

data = read.csv("C:\\Users\\addqlee\\Downloads\\欧洲疫情.csv",sep=',',header=TRUE)

attach(data)

r=current #设置气泡大小

N<-nrow(data) #数据集的行数,即观察值的个数

#添加气泡

symbols(total,dead,circles=r,inches=0.25,fg="grey",bg=colors(),main="欧洲各国疫情",xlab="累计确诊",ylab="死亡")

text(total,dead,data$country,cex=0.7,family="STXihei",col="blue")

绘制方格图,可以将circles=r替换成squares=r:

#绘制方格图:

symbols(total,dead,squares=r,inches=0.25,fg="grey",bg=rainbow(N),main="欧洲各国疫情",xlab="累计确诊",ylab="死亡")

text(total,dead,data$country,cex=0.7,family="STXihei",col="blue")

绘制三角形图,则将squares改成starts:

#绘制三角形图:

r2=as.matrix(cbind(r,r,r))

symbols(total,dead,stars=r2,inches=0.25,fg="grey",bg=rainbow(N),main="欧洲各国疫情",xlab="累计确诊",ylab="死亡")

text(total,dead,data$country,cex=0.7,family="STXihei",col="blue")

2.2 使用ggplot2绘制气泡图

geom_point()函数可以绘制散点图,气泡图也是一种散点图,只不过点的大小由一个变量(size)来控制。相比symbols函数,功能更加丰富一些:

library(ggplot2)

data = read.csv("C:\\Users\\addqlee\\Downloads\\欧洲疫情.csv",sep=',',header=TRUE)

p = ggplot(data,aes(total,dead))

p=p + geom_point() 

# 修改点的大小随current变化,scale_size用于调整点的大小

p=p + geom_point(aes(size=current)) + scale_size("point", range = c(1,20))

# 展示三维数据

pbubble = p+ geom_point(aes(size=5*current,color=-1*log10(current)))

# 设置渐变色

pr = pbubble+scale_color_gradient(low="red",high = "blue")

# 绘制p气泡图

pr = pr+labs(color=rainbow(N),size="现存确诊", 

                          x="累计确诊",y="死亡",title="欧洲各国疫情")

pr + theme_bw() + geom_text(aes(label = country),size=3, vjust = "middle", hjust = "center",  color = "dark blue", fontface="bold" )

在ggplot中,如果要修改形状,只需要增加shape的设置即可,如将圆形改为三角形:

pbubble = p+ geom_point(aes(size=5*current,color=-1*log10(current)),shape=17)

shape的取值可以参考下图(x轴):

三、如何制作动态气泡图

下篇文章继续~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

更多数据相关文章,欢迎关注公众号“大数据会”。

相关文章

网友评论

    本文标题:多维数据可视化之气泡图——各国疫情对比

    本文链接:https://www.haomeiwen.com/subject/rmszwhtx.html