如何在R中创建一个气泡图(附代码)

417 阅读2分钟

气泡图是一种图表类型,它允许你在一个数据集中同时显示三个变量。

前两个变量被用作散点图上的(x,y)坐标,第三个变量被用来描述大小。

你可以使用以下基本语法在R中创建一个气泡图:

library(ggplot2)

#create bubble chart
ggplot(df, aes(x=x_var, y=y_var, size=size_var)) +
  geom_point(alpha=0.5) +
  scale_size(range=c(2, 10), name='Legend Name')

下面的例子展示了如何在实践中使用这种语法来创建一个气泡图。

注意alpha参数指定图表中的圆圈应该是部分透明的。范围参数允许你为图表中的圆设置最小和最大半径值。

例子:在R中创建一个气泡图

假设我们在R中拥有以下数据框,其中包含各种篮球运动员的信息:

#create data frame
df <- data.frame(team=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'),
                 points=c(8, 11, 13, 13, 15, 18, 22, 27, 32),
                 assists=c(4, 3, 6, 5, 4, 7, 8, 11, 6),
                 minutes=c(9, 12, 15, 20, 36, 30, 31, 40, 43))

#view data frame
df

  team points assists minutes
1    A      8       4       9
2    A     11       3      12
3    A     13       6      15
4    B     13       5      20
5    B     15       4      36
6    B     18       7      30
7    C     22       8      31
8    C     27      11      40
9    C     32       6      43

我们可以使用下面的语法来创建一个气泡图,在X轴上显示助攻,在Y轴上显示分数,并使用分钟来决定圆圈的大小:

library(ggplot2)

#create bubble chart
ggplot(df, aes(x=assists, y=points, size=minutes)) +
  geom_point(alpha=0.5) +
  scale_size(range=c(2, 10), name='Minutes Played')

你可以通过使用geom_point()函数中的颜色参数来改变所有圆圈的颜色。

library(ggplot2)

#create bubble chart with blue circles
ggplot(df, aes(x=assists, y=points, size=minutes)) +
  geom_point(alpha=0.5, color='steelblue')  +
  scale_size(range=c(2, 10), name='Minutes Played')

bubble chart in R

另外,你也可以在aes()中使用颜色参数,使每个圆的颜色基于数据框中另一个变量的值。

library(ggplot2)

#create bubble chart and color circles based on value of team variable
ggplot(df, aes(x=assists, y=points, size=minutes, color=team)) +
  geom_point(alpha=0.5)  +
  scale_size(range=c(2, 10), name='Minutes Played')

bubble chart in R with color based on condition

图中每个圆圈的颜色现在取决于团队变量的值。

注意:请自由发挥范围参数中的最小值和最大值,以增加或减少图中圆圈的大小。