一、气泡图(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轴):
三、如何制作动态气泡图
下篇文章继续~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
更多数据相关文章,欢迎关注公众号“大数据会”。
网友评论