R的ggplot2包画气泡图?

By 数据跨界 at 2019-03-04 • 0人收藏 • 287人看过

气泡图(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)

图形结果:

气泡图1.png

二 利用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

2图形的结果:

气泡图3.png

三 自定义气泡图,并保存为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()

图形结果:

气泡图.png


四 可交互式的气泡图


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)

图形结果:


气泡图4.png


参考资料:

1 基本气泡图

2 可交互式气泡图

登录后方可回帖

信息栏
数据人网是数据人学习、交流和分享的平台,专注于从数据中学习,努力发觉数据之洞见,积极利用数据之价值
Loading...