R中利用ggplot2绘制气泡图

闲来无事,整理了一下自己的绘图笔记,顺便分享到CSDN上。

一、介绍

气泡图(Bubble Plot)是一种常用的数据可视化方法,用于展示三个变量之间的关系。气泡图的特点是通过气泡的大小、颜色和位置来表达数据中的多维信息。在R中,ggplot2包是绘制气泡图的强大工具,它通过灵活的语法和丰富的可定制选项,能够帮助我们轻松地创建直观、清晰的数据可视化图表。

气泡图的基本构成

气泡图通常需要三个重要的变量:
X轴和Y轴:用来表示两个变量的关系,通常是数据的主要趋势或分类。
气泡的大小:反映第三个变量的大小或频率,通常用于显示量化信息。
气泡的颜色:用来表示变量的不同类别或对比性强的数据特征。

二、绘图

假设我们有一个数据集:包括x、y、size和group,其中x和y代表位置坐标,z代表气泡的大小,group设置气泡的颜色类别。我们可以通过以下代码利用ggplot2包来绘制气泡图:

rm(list = ls())
library(ggplot2)

set.seed(1)
#定义一个随机的数据集
df=data.frame(x=c(rnorm(20,1,3),rnorm(20,5,3),rnorm(20,10,3),rnorm(20,15,3),rnorm(20,20,3),rnorm(20,25,3)),
              y=c(rnorm(20,1,3),rnorm(20,5,3),rnorm(20,10,3),rnorm(20,15,3),rnorm(20,20,3),rnorm(20,25,3)),
              z=rnorm(120,20,100),
               group=rep(LETTERS[1:6],each=20))

数据集如下图所示
请添加图片描述
利用ggplot2绘制气泡图

p=ggplot()+
  #x和y代表位置坐标,z代表气泡的大小,group设置气泡的颜色类别,alpha设置透明度
  geom_point(data=df,aes(x=x,y=y,color=group,size=z),alpha=0.8)+ 
  #设置气泡颜色
  scale_color_manual(values = c("#4766c2","#96dd73","#f9bc34","#e84545",
                                "#51b1d6",'#59ab85','#fc7f4a'))+
  #设置主题
  theme_bw()+
  #设置气泡大小范围
  scale_size_continuous(range = c(1,10))+
  theme(legend.position = 'none', #删除图例
        panel.grid.minor = element_blank(), #删除次grid
        panel.grid.major = element_line(linewidth = 0.4), #设置主grid
        axis.text = element_text(size=14), #坐标轴text设置
        axis.title = element_text(size=16))+ #坐标轴lab设置
  labs(x='x',y='Y') #x和y轴lab设置
p
ggsave(p,file='1.pdf',width = 5,height = 4)

请添加图片描述
这个配色还是蛮好看的。

三、总结

利用R中的ggplot2包绘制气泡图,是一种直观而有效的数据可视化方式。通过调整气泡的大小、颜色以及坐标轴的设置,可以展示多维数据的关系。气泡图在多个领域都有广泛的应用,尤其是在需要展示三个变量关系的情况下,其清晰且富有表现力的图形特征,使得它成为数据分析和决策支持中不可或缺的工具之一 (文中介绍及结论来自Chatgpt4.0,我是真的懒得扩展这些东西,真想只放代码)。

### R语言绘制气泡图 在R语言中,`ggplot2`包被广泛应用于创建高质量的统计图形,其中包括气泡图。这种图表类型非常适合用来表示三维数据集,在二维平面上展示的同时利用圆圈面积来编码第三个维度的信息。 #### 使用ggplot2绘制静态气泡图 为了构建一个基本的气泡图,首先需要加载必要的库并准备合适结构的数据框。假设有一个包含三列的数据集——两列为数值型代表坐标轴上的位置(x, y),另一列为决定泡泡大小的权重(z): ```r library(ggplot2) # 创建样本数据帧 df <- data.frame( x = c(1, 2, 3), y = c(4, 5, 6), size = c(70, 80, 90) ) # 构建基础散点图,并设置点尺寸映射到'size'变量上 p <- ggplot(df, aes(x=x, y=y)) + geom_point(aes(size=size), color="blue") + scale_size_continuous(range=c(5, 20)) print(p) ``` 上述代码片段展示了如何基于给定的数据表生成一张简单的气泡图[^2]。 #### 动态变化的动画气泡图 对于更复杂的场景,比如想要展现随时间演变的趋势,则可以考虑加入动态元素形成动画效果。这可以通过额外安装`gganimate`扩展包实现,它允许用户定义过渡逻辑以及控制播放速度等参数: ```r install.packages("gganimate") library(gganimate) # 添加新字段'time_step'模拟不同时间节点下的观测值 animated_df <- rbind( df %>% mutate(time_step=as.factor('t1')), df %>% mutate(time_step=as.factor('t2')) ) animation_plot <- p + transition_states(states=time_step, transition_length=2, state_length=1) animate(animation_plot, nframes=100, fps=20) ``` 这段脚本说明了怎样引入时间序列因素制作出随着时间推移而改变外观特征的动画版本气泡图[^1]。 #### 自定义样式与增强表现力 除了调整大小外,还可以进一步自定义颜色、形状等方面来自由发挥创意或者突出特定模式。例如,通过指定不同的调色板让图案更加美观;或是依据类别属性赋予各组别的标记独特形式等等。 ```r # 应用渐变色彩方案 p_with_color <- p + scale_fill_gradient(low="lightblue", high="darkred") # 如果有分类信息可用作分群标识的话... if (!is.null(df$category)){ p_grouped_by_category <- p + facet_wrap(~category) } ``` 这些技巧有助于提升最终作品的专业度和视觉冲击力[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值