R 调整ggplot中散点图的点大小

R 调整ggplot中散点图的点大小,r,ggplot2,size,R,Ggplot2,Size,我有以下数据: +-----------+---------+----------+ | AGE_group | mean_y | count_y | +-----------+---------+----------+ | 1 | 0.141 | 1115 | | 2 | 0.196 | 1043 | | 3 | 0.202 | 1093 | | 4 | 0.114 | 1123

我有以下数据:

+-----------+---------+----------+
| AGE_group | mean_y  |  count_y |
+-----------+---------+----------+
|         1 |   0.141 |     1115 |
|         2 |   0.196 |     1043 |
|         3 |   0.202 |     1093 |
|         4 |   0.114 |     1123 |
+-----------+---------+----------+
我使用ggpplot:

g_age <- ggplot(AGE_group_df, aes(AGE_group, mean_y, group = 1)) +
  geom_line(size=1, color='blue') +
  geom_point(aes(size=AGE_group_df$count_y), color='darkblue') +
  labs(x = 'Age Group',
       y='% Subscribe',
       title='Age Group and Subscribe Rate',
       size='# Customer')
g_age
g_age你可以(至少)使用三种方法

  • 使用:
    scale\u size\u area()
  • 使用范围参数:
    scale\u size(范围=4:5)
  • 将limits参数设置为0和最大值之间的
    count\u y
    scale\u size(limits=c(0,max(年龄组\u df$count\u y))
  • 此处更详细:一个选项是使用:

    第三个是将
    scale\u size
    的下限设置为0:

    ggplot(AGE_group_df, aes(x = AGE_group, y = mean_y, size = count_y)) +
      geom_line(size=1, color='blue') +
      scale_size(breaks = round(seq(min(AGE_group_df$count_y), 
                 max(AGE_group_df$count_y), length.out = 4), 0), 
                 limits = c(0, max(AGE_group_df$count_y))) + 
      geom_point(color='darkblue') +
      labs(x = 'Age Group',
           y='% Subscribe',
           title='Age Group and Subscribe Rate',
           size='# Customer')
    

    请注意,您可以在函数中定义大小。我添加了分隔符以显示最小值和最大值,但这不是必需的。这只是一个额外的功能。

    尝试
    size=count\y
    ,即不使用
    $
    。不要在
    aes()中引用带有
    $
    的变量
    。那列实际上是数字吗?size=count\y对绘图没有帮助。但是,它有助于代码更短、更可读,谢谢。非常感谢您提供的非常详细的答案。它工作得非常完美。
    ggplot(AGE_group_df, aes(x = AGE_group, y = mean_y, size = count_y)) +
      geom_line(size=1, color='blue') +
      scale_size(breaks = round(seq(min(AGE_group_df$count_y), 
                 max(AGE_group_df$count_y), length.out = 4), 0), range = 4:5) + 
      geom_point(color='darkblue') +
      labs(x = 'Age Group',
           y='% Subscribe',
           title='Age Group and Subscribe Rate',
           size='# Customer')
    
    ggplot(AGE_group_df, aes(x = AGE_group, y = mean_y, size = count_y)) +
      geom_line(size=1, color='blue') +
      scale_size(breaks = round(seq(min(AGE_group_df$count_y), 
                 max(AGE_group_df$count_y), length.out = 4), 0), 
                 limits = c(0, max(AGE_group_df$count_y))) + 
      geom_point(color='darkblue') +
      labs(x = 'Age Group',
           y='% Subscribe',
           title='Age Group and Subscribe Rate',
           size='# Customer')