R语言绘制气泡图

server/2024/10/18 5:34:34/

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

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.ppmy.cn/server/131699.html

相关文章

深度学习:循环神经网络——LSTM

目录 前言 一、LSTM主要组成部分 二、LSTM的工作原理 三、LSTM的工作步骤详解 1.遗忘门 2.输入门 3.输出门 前言 LSTM&#xff08;长短期记忆网络&#xff09;是一种特殊类型的循环神经网络&#xff08;RNN&#xff09;&#xff0c;用于处理和预测序列数据。与传统的RNN…

MT1331-MT1340 码题集 (c 语言详解)

MT1331用函数求π的近似值 c 语言代码实现 #include <math.h> #include <stdio.h> double Fun() {double pi_over_4 0.0; // Π / 4 的近似值double current; // 当前项int i 0; // 项的索引do {current (i % 2 0 ? 1.0 : -1.0) / (2.0…

Elasticsearch 8 的详细安装步骤和基本使用

一、Elasticsearch 简介 Elasticsearch 8 简称 es8 是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能&#xff0c;网上对其有非常详细的定义这里不多做赘述&#xff0c;总之它是在你查询语句性能达到瓶颈&#xff0c;并且使用了索引、缓存等手段仍然无法突破的情…

动态规划和贪心算法

目录 动态规划和贪心算法 动态规划 贪心算法 两者之间的区别 动态规划和贪心算法 是两种经典的算法设计策略,它们各自具有独特的特点和适用场景。 动态规划 动态规划是一种将复杂问题分解为更简单子问题的求解方法。它特别适用于那些具有重叠子问题和最优子结构特性的问…

Marketo 和 Braze 之间的双向订阅状态同步

要实现 Marketo 和 Braze 之间的双向用户订阅状态同步&#xff0c;我们需要从最基础的环境准备开始&#xff0c;详细逐步展开每一个操作步骤&#xff0c;明确技术准备、操作流程&#xff0c;以及可能遇到的问题。以下是从零开始的详细指南&#xff0c;确保每一个步骤都充分考虑…

Apple Intelligence将于10月28日发布,ChatGPT集成推迟!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

uniAPP如何开发?PHP语言的书写该如何制作

开发一个基于uni-app的项目以及与之交互的PHP后端涉及多个步骤和技术栈。以下是一个简要的指南&#xff0c;帮助你理解如何开始这两个部分的开发。 一、uni-app开发 1. 环境准备 Node.js&#xff1a;确保你已经安装了Node.js&#xff0c;这是构建和运行uni-app项目的基础。H…

Nodejs和C#使用ECDH算法交换秘钥

转载于&#xff1a;https://bkssl.com/document/nodejs-csharp-ecdh.html nodejs的ECDH算法在进行computeSecret的时候不会自动进行HASH运算&#xff0c;但C#的ECDH算法必须指定HASH算法。 两边算法必须使用相同的椭圆曲线和Hash算法&#xff0c;例如下面用例都是用的SHA256。…