当前位置: 首页 > news >正文

R语言绘制气泡图

气泡图是一种数据可视化图表。它通常在二维或三维空间中展示数据。两个变量决定气泡在平面或空间中的位置,第三个变量则以气泡大小呈现。能直观反映三个变量间关系,帮助用户快速理解数据特征和趋势,在数据分析和展示中广泛应用。

0x01 使用symbols()函数

一、函数用法及参数说明

symbols(x, y = NULL, circles, squares, rectangles, stars, thermometers, boxplots, inches = TRUE, add = FALSE, fg = par("col"), bg = NA, xlab = NULL, ylab = NULL, main = NULL, xlim = NULL, ylim = NULL,...)

1.x:表示横坐标位置。
2.y:表示纵坐标位置。
3.circles:圆形的半径。
4.squares:正方形的边长。
5.rectangles:绘制矩形,需搭配两列矩阵指定宽高,第一列表示宽度,第二列表示长度。
6.stars:绘制星形,搭配多列矩阵定义射线长度。
7.thermometers:绘制温度计,搭配三或四列矩阵定义宽高及填充比例。
8.boxplots:绘制箱线图,搭配五列矩阵定义宽高、须长及中位数位置比例。
9.inches:尺寸大小,取值为FLASE、TRUE或者一个给定的正数。
10.add:如果为TRUE,符号将添加到现有图形上,否则将创建一个新图形。
11.fg:表示符号的边框颜色。
12.bg:表示符号的填充颜色。
13.xlab:x轴标签。
14.ylab:y轴标签。
15.main:图形的主标题。
16.xlim:指定x轴范围。
17.ylim:指定y轴范围。

二、数据准备

这里作为方便演示,使用ggplot2包的diamonds数据集,它包含了超过 50,000 颗圆形切割钻石的价格和其他属性信息,可用于对钻石数据进行分析和可视化。

#加载ggplot2包
library(ggplot2)
#由于数据中存在5w多条数据,这里提取十五条作为演示。
diamond <- diamonds[0:15,]

三、绘制基本的气泡图

symbols(diamond$depth,diamond$price,circle = diamond$carat)

四、美化和调整

# 绘制以钻石深度为横坐标、价格为纵坐标、克拉重量决定圆形大小的图形
symbols(diamond$depth,diamond$price,circle = diamond$carat,inches = 0.5,fg = "white",bg = "lightblue3",main = "part of diamonds",ylab = "price of diamond",xlab = "depth of diamond")
# 在对应的坐标位置添加钻石的切割等级文本
text(diamond$depth,diamond$price,diamond$cut,cex = 0.5)

0x02 使用ggplot2包

一、准备工作

#加载ggplot2包
library(ggplot2)
#sample(sequence, n)函数从给定的序列中随机抽取n个元素。在这里,从 1 到 500000 的序列中随机抽取 30 个整数。
diamond <- diamonds[sample(1:50000,30),]

二、绘制基本的气泡图

使用geom_point()函数绘制气泡图。

ggplot(diamond,aes(x = depth,y = price)) +geom_point(size = diamond$price/400)

三、美化与调整

ggplot(diamond,aes(x = depth,y = price)) +geom_point(size = diamond$price/400,shape = 19,color = 7) +labs(title = "气泡图",x = "depth of diamond",y = "price of diamond") +theme(plot.title = element_text(hjust = 0.5))

也可以将某些参数设定为因子,然后对颜色进行区分。

ggplot(diamond,aes(x = depth,y = price)) +geom_point(size = diamond$price/400,shape = 19,color = factor(diamond$depth)) +labs(title = "气泡图",x = "depth of diamond",y = "price of diamond") +theme(plot.title = element_text(hjust = 0.5))

也可以对颜色进行手动的设置。

ggplot(diamond,aes(x = depth,y = price)) +geom_point(size = diamond$price/400,shape = 19,color = "grey") +annotate("text",x = diamond$depth,y = diamond$price,label = diamond$cut,fontface = "italic",colour = "darkred",size = 3)
#fontface = "italic"设置文本的字体样式为斜体。
http://www.lryc.cn/news/458165.html

相关文章:

  • c++ sparsetable 模版
  • 创建线程池和封装锁
  • 易图讯军用VR三维电子沙盘系统
  • LeetCode讲解篇之70. 爬楼梯
  • 论文写作不再难,论文初稿快速成型法!
  • linux系统,监控进程运行状态并自动重启崩溃后的进程的多种方法
  • 【JavaEE初阶】深入理解不同锁的意义,synchronized的加锁过程理解以及CAS的原子性实现(面试经典题);
  • 详解Redis分布式锁在SpringBoot的@Async方法中没锁住的坑
  • 怎么做接口自动化测试
  • 网络编程(18)——使用asio协程实现并发服务器
  • Koa2项目实战2(路由管理、项目结构优化)
  • 决战Linux操作系统
  • OceanBase 3.2.2 数据库问题处理记录
  • HCIP--以太网交换安全(二)端口安全
  • 在 Windows 11 安卓子系统中安装 APK 的操作指南
  • [C语言] 函数详解:库函数与自定义函数
  • 0x11 科迈 RAS系统 Cookie验证越权漏洞
  • MoonBit 双周报 Vol.57:AI助手功能增强、表达式优先级调整、JS 交互优化、标准库与实验库API多项更新!
  • element ui input textarea控制显示高度
  • Chromium 中chrome.downloads扩展接口c++
  • 微信小程序常见问题
  • 进程的理解
  • LeetCode494:目标和
  • vue3中自定义校验函数密码不生效问题
  • RabbitMQ(死信队列)
  • HTTP代理的优点和局限性
  • 大厂面试真题-如果通过JVM自带的工具排查和解决线上CPU100%的问题
  • kubernetes中微服务部署
  • 基于 Java 的天气预报系统设计与实现
  • 思迅商云8前台打开提示上传日志信息失败