R语言绘制散点图

散点图是一种在直角坐标系中用数据点直观呈现两个变量之间关系、可检测异常值并探索数据分布的可视化图表。它是一种常用的数据可视化工具,我们通过不同的参数调整和包的使用,可以创建出满足各种需求的散点图。

常用绘制散点图的函数有plot()函数和ggplot2这个R包首先我们来了解一下plot函数的绘制。

0x01 plot()函数

1.使用 plot()函数绘制基本散点图。

x <- c(1, 2, 3, 4, 5)
y <- c(2, 4, 6, 8, 10)
plot(x, y)

2.可以添加标题、坐标轴标签、点的形状、点的大小、颜色等。

plot(x, y, main = "Scatter Plot", xlab = "X Axis", ylab = "Y Axis")

主要参数:
type:指定图形的类型。
main:设置标题
sub:设置副标题
xlab、ylab:设置x、y轴标题
col:设置图形的颜色
cex:设置点的大小
pch:设置点的形状
lwd:设置点边框/线的宽度
xlim、ylim:设置坐标轴区间的范围
legend():在图形中添加图例。
points():在原有图形上添加点

type常见的取值有:
“p”:点(默认值)。
“l”:线。
“b”:同时有点和线。
“o”:点覆盖在线上。
“h”:直方图式的垂直线。
“s”:阶梯图。
“n”:不绘制任何图形,但设置坐标轴范围,通常用于后续添加图形。

PCH对照表

0x02 使用 ggplot2包

1.首先加载 ggplot2包。

library(ggplot2)

2使用 ggplot()函数创建绘图对象,然后添加 geom_point()层来绘制散点图。

# 创建示例数据
data <- data.frame(x = c(1, 2, 3, 4, 5),y = c(5, 4, 3, 2, 1),category = c("A", "B", "A", "B", "A")
)# 使用 ggplot2 绘制散点图
ggplot(data, aes(x = x, y = y, color = category)) +geom_point() +labs(title = "Scatter Plot with ggplot2", x = "X Axis", y = "Y Axis")

ggplot2包提供了更强大的自定义功能,可以调整点的颜色、大小、形状等属性,以及添加拟合线、平滑曲线等。

一、基本图形参数
1.data:指定用于绘图的数据框。
2.mapping:通常通过aes()函数指定,用于将数据变量映射到图形的美学属性上,如aes(x = var1, y = var2, color = var3)
3.geom:指定几何对象,如geom_point()表示绘制散点图,geom_line()表示绘制线图等。

二、图形外观参数
1.color:设置图形元素的颜色,如线条颜色、点的颜色等。可以是单一颜色名称(如 “red”)或根据数据变量动态分配颜色。
2.fill:用于填充图形元素的内部颜色,如柱状图的柱子填充颜色。
3.size:设置点的大小、线条的粗细等。
4.alpha:设置图形元素的透明度,取值范围从 0(完全透明)到 1(完全不透明)。
5.shape:设置指定图形中点的形状。
6.scale_*:用于控制图形的各种属性的标度,如scale_color_*:用于控制颜色的标度,scale_color_manual() 允许你手动指定颜色映射,scale_color_gradient() 用于创建连续的颜色渐变。

三、坐标轴参数
1.xlimylim:分别设置横坐标和纵坐标的范围。例如xlim = c(0, 10)设置横坐标范围为 0 到 10。
2.xlabylab:分别设置横坐标和纵坐标的标签。
3.scale_x_*scale_y_*:用于定制坐标轴的刻度、类型等。例如scale_x_log10()将横坐标设置为对数刻度。

四、标题和标签参数
1.ggtitle:设置图形的标题。
2.labs:可以一次性设置多个标签,如labs(title = "My Plot", x = "X Axis Label", y = "Y Axis Label")

五、主题参数
1.theme:用于定制图形的整体外观,包括背景颜色、网格线、字体等。例如theme_minimal()使用简约主题。
2.theme_void:去除所有的背景元素和坐标轴,只显示数据元素。

六、分面参数
facet_wrapfacet_grid:用于将图形按照一个或多个变量进行分面展示,以便更好地比较不同组的数据。例如facet_wrap(~category)将图形按照category变量进行分面。

这只是ggplot2的一部分参数,通过灵活组合这些参数,可以创建出各种精美的可视化图形。
shape对照表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/881424.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud学习记录|day4

学习材料 2024最新SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 网关 微服务下&#xff0c;好多不同地址和端口&#xff0c;而前端只知道8080&#xff0c;这怎么解决&…

《Programming from the Ground Up》阅读笔记:p217-p238

《Programming from the Ground Up》学习第11天&#xff0c;p217-p238总结&#xff0c;总计22页。 一、技术总结 1.C compiling p216, C compiling is split into two stages - the preprocessor and the main compiler。 注&#xff1a;感觉这个写法不好&#xff0c;因为p…

Java实体对象转换利器MapStruct详解

概述 现在的JAVA项目多数采用分层结构&#xff0c;参考《阿里巴巴JAVA开发手册》。 分层之后&#xff0c;每一层都有自己的领域模型&#xff0c;即不同类型的 Bean&#xff1a;  DO &#xff08; Data Object &#xff09; &#xff1a;与数据库表结构一一对应&#xff0c;…

acwing:1576. 再次树遍历

打卡一道有意义的题。 题签&#xff1a; 通过使用栈可以以非递归方式实现二叉树的中序遍历。 例如&#xff0c;假设遍历一个如下图所示的 66 节点的二叉树&#xff08;节点编号从 11 到 66&#xff09;。 则堆栈操作为&#xff1a;push(1); push(2); push(3); pop(); pop(); pu…

【HTML】defer 和 async 属性在 script 标签中分别有什么作用?

需要这两个属性的原因&#xff1f; 首先我们要知道的是&#xff0c;浏览器在解析 HTML 的过程中&#xff0c;遇到了 script 元素是不能继续构建 DOM 树的。 它会停止解析构建&#xff0c;首先去下载 js 代码&#xff0c;并且执行 js 的脚本&#xff1b;只有在等到 js 脚本执行…

AI训练 | 如何控制单篇文章不传给AI训练

随着生成式AI技术的普及&#xff0c;越来越多的企业开始使用AI工具来提升效率&#xff0c;但与此同时&#xff0c;关于AI训练的争议也越来越多。比如&#xff0c;2个月前字节跳动和WPS因为内容因为AI训练&#xff0c;引发了创作者的广泛讨论。这种对未经许可内容被“喂养”AI模…

draw.io创建自定义形状

Create custom shapes in draw.io using the text editor Reference draw怎么创建和编辑复杂的自定义形状 https://blog.csdn.net/u012028275/article/details/113828875 Create custom shapes in draw.io using the text editor

LeetCode讲解篇之377. 组合总和 Ⅳ

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 总和为target的元素组合个数 可以由 总和为target - nums[j]的元素组合个数 转换而来&#xff0c;其中j为nums所有元素的下标 而总和target - nums[j]的元素组合个数 可以由 总和为target - nums[j] - nums[k]的…

C++模版SFIANE应用踩的一个小坑

一天一个C大佬同事&#xff0c;突然截图过来一段代码&#xff1a;这写的啥呀&#xff0c;啰里吧嗦的&#xff0c;这个构造函数模板参数T1感觉是多余的呀 template<class T> class TestClass { public:TestClass(){}//函数1template<class T1 T, std::enable_if_t<…

第三届“讯方杯”大赛常见问题解答

9月20日&#xff0c;第三届“讯方杯”全国大学生信息技术应用及创新大赛正式拉开帷幕。自大赛报名启动以来&#xff0c;全国各大高校热烈响应、广泛参与。为了更好地服务于各参赛团队&#xff0c;大赛组委会针对收集到的各类常见问题&#xff0c;整理了热点问答集锦&#xff0c…

传感器模块编程实践(四)舵机+MPU6050陀螺仪模块融合云台模型

文章目录 一.概要二.实验模型原理1.硬件连接原理框图2.控制原理 三.实验模型控制流程四.云台模型程序五.实验效果视频六.小结 一.概要 云台主要用来固定摄像头。准确地说&#xff0c;云台是一种可以多角度调节的支撑设备&#xff0c;类似于人的脖子可以支撑着脑袋&#xff0c;…

Leetcode 删除链表倒数第 N 个节点

算法思想&#xff1a; 使用了双指针法。下面是详细的算法思想&#xff1a; 1. 引入虚拟头节点&#xff08;dummy node&#xff09; 为了处理链表的一些边界情况&#xff08;比如删除头节点&#xff09;&#xff0c;我们在链表的头部引入了一个虚拟节点 dummy&#xff0c;并让…

【AAOS】Android Automotive 9模拟器源码下载及编译

源码下载 repo init -u https://android.googlesource.com/platform/manifest -b android-9.0.0_r61 repo sync -c --no-tags --no-clone-bundle 源码编译 source build/envsetup.sh lunch aosp_car_x86_64-userdebug make -j8 运行效果 emulator Home界面 MAP All apps S…

ATX和ITX有什么区别?

ATX&#xff08;Advanced Technology eXtended&#xff09;和 ITX&#xff08;Information Technology eXtended&#xff09;是两种常见的主板规格&#xff0c;它们之间存在几个关键的区别&#xff0c;主要体现在版型尺寸、配置功能以及适用范围上。 ATX主板与ITX主板的对比 …

前端环境搭建一览记录

文章目录 写在前面Nodejs下载Nodejs介绍Nodejs下载方式nvm安装:安装Homebrew&#xff08;安装器&#xff09;(打开终端&#xff0c;输入下面的脚本)安装nvm验证安装是否成功配置环境内容查看环境内容刷新配置 nvm 使用如何使用nvm ls 查看当前安装的版本nvm use versionId 切换…

精益生产现场管理和改善:从知识到实操的落地

在制造业的广阔天地中&#xff0c;精益生产作为一种追求浪费最小化、效率最大化的生产管理模式&#xff0c;已成为众多企业转型升级的关键路径。本文&#xff0c;深圳天行健企业管理咨询公司将从精益生产现场管理和改善的理论知识出发&#xff0c;深入探讨其从理念导入到实操落…

【安装JDK和Android SDK】

安装JDK和Android SDK 1 前言2 下载2.1 下载途径2.2 JDK下载和安装2.2.1 下载2.2.2 安装并配置环境变量2.2.3 验证 2.3 SDK下载和安装2.3.1 下载2.3.2 安装2.3.3 环境变量配置2.3.4 验证 1 前言 在软件开发中&#xff0c;Android应用开发通常使用Android Studio&#xff0c;但…

Windows 搭建 Gitea

一、准备工作 1. 安装 Git&#xff1a;Gitea 依赖 Git 进行代码管理&#xff0c;所以首先需要确保系统中安装了 Git。 下载地址&#xff1a;https://git-scm.com/downloads/win 2. 安装数据库&#xff08;可选&#xff09; 默认情况下&#xff0c;Gitea 使用 SQLite 作为内…

基于STM32的简易交通灯proteus仿真设计(仿真+程序+设计报告+讲解视频)

基于STM32的简易交通灯proteus仿真设计(仿真程序设计报告讲解视频&#xff09; 仿真图proteus 8.9 程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;C0091 **1.**主要功能 功能说明&#xff1a; 以STM32单片机和数码管、LED灯设计简易交通…

无人自助超市系统小程序源码开发

随着科技的飞速发展和消费模式的转变&#xff0c;无人自助超市作为一种新兴的商业模式&#xff0c;以其便捷性、高效率以及对“体验式购物”的完美诠释&#xff0c;受到了广泛关注。本文renxb001将深入探讨无人自助超市系统小程序源码开发的核心环节和技术要点。 一、系统需求分…