R的ggplot2包画气泡图?
By
数据跨界
at 2019-03-04 • 0人收藏 • 309人看过
气泡图(Bubble chart)是添加了第三个维度的散点图,通过点的大小表示附加变量的值。
一 基本气泡图
# R包 library(tidyverse) # 使用钻石数据集,随机选取 200个样本 data <- diamonds %>% sample_n(200) # 绘制基本气泡图 ggplot(data, aes(x=carat, y=price, size=depth)) + geom_point(alpha=0.2)
图形结果:
二 利用scale_size_continuous函数控制气泡的大小的范围
# 1 您可能想要控制点的最小和最大值 ggplot(data, aes(x=carat, y=price, size=depth)) + geom_point(alpha=0.2) + scale_size_continuous(range = c(0.5, 16)) # 2 您可以向变量size添加一个转换 # 如果您想突出非常高的变量,您可以使用指数变换。 ggplot(data, aes(x=carat, y=price, size=depth)) + geom_point(alpha=0.2) + scale_size_continuous( trans="exp", range=c(1, 25))
1图形的结果:
2图形的结果:
三 自定义气泡图,并保存为png格式
# 自定义气泡图,并且进行保存 png("气泡图.png", height = 800, width=800) ggplot(data, aes(x=carat, y=price, size=depth, color=carat)) + geom_point(alpha=0.4) + scale_size_continuous( trans="exp", range=c(4, 25)) + scale_colour_continuous(guide = FALSE) + xlab("weight of the diamond") + labs( size = "Depth in %" ) + theme_bw() + theme( text = element_text(size=20), legend.position = c(.95, .05), legend.justification = c("right", "bottom"), panel.border = element_blank() ) dev.off()
图形结果:
四 可交互式的气泡图
library(ggplot2) 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)
图形结果:
参考资料:
1 基本气泡图
2 可交互式气泡图
登录后方可回帖