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

R语言做图

目录

1. 图形参数

2. 低级图形

3. 部分高级图形 

参考 


1. 图形参数

        图形参数用于设置图形中各种属性。

        有些参数直接用在绘图函数内,如plot函数可以用 pch(点样式)、col(颜色)、cex(文字符号大小倍数)、lty(线条样式)、 lwd(线条宽度)等参数。

         有些图形参数必须使用par()函数指定。 par函数指定图形参数并返回原来的参数值, 所以在修改参数值作图后通常应该恢复原始参数值。

通过

opar <- par(mfrow=c(2,2))
...
par(opar)

opar <- par(mfrow=c(2,2))
on.exit(par(opar))

 设置参数并在操执行完后回复par原始参数

        R通过配置参数达到想要的效果,参数有很多,为了避免滥用或浪费。比如数如颜色大小是可以通用的,被分到了par里面,作为公共参数集合。如果plot的坐标轴要用颜色相关的属性,那么就可以去par中取来用。所以par可理解为公共参数列表。 【1】

详细参数参考

26 基本R绘图 | R语言教程 (pku.edu.cn)

2. 低级图形

        低级绘图函数是在现有的图形上添加元素。

2.1 在图上直线

        在R语言中,abline()函数用于在图形中添加一条直线。它可以添加水平线、垂直线或者通过指定截距和斜率来添加任意直线。

主要参数包括:

h: 添加一条水平线,参数值为水平线的y坐标。

v: 添加一条垂直线,参数值为垂直线的x坐标。

a、b: y=bx+a   (此外a,b还有其它表示斜线方法)

2.2 在图上标散点

# 在sin曲线上标出x为1,2,3三个点
special <- list(x=c(1,,2,3), y=sin(c(1,2,3)))
plot(seq(0,2*pi,length=100), sin(seq(0,2*pi,length=100)), type='l')
# 分别列出x,y坐标
points(special$x, special$y, col="red", pch=16, cex=2)# 第一个参数还可以是x、y组成的列表list
points(special, col="red", pch=16, cex=2)

2.3 图上增加曲线

lines(x, fx, lwd=, col=)

参数需要(x,fx)坐标

2.4 加图例

 legend(x, y, col=c("red", "blue"),  lty=c(1,1), lwd=c(2,2),  legend=c("f1_name", "f2_name"))

(x,y)为图例左上角坐标(即图例放在图的哪里)

2.5 自定义坐标轴

  •  在plot()函数中用 axes=FALSE可以取消自动的坐标轴。
  • 用box()函数画坐标边框。
  • 用axis函数单独绘制坐标轴。
  • axis的第一个参数取1,2,3,4, 分别表示axis所设置的是横轴、纵轴、上方和右方的坐标轴。
  • axis的参数at为 刻度线位置,labels为标签。
axis(1, at=seq(x), labels=names(x))

2.6 图中添加文字 

在图中(x,y)处添加文字‘线性回归’,左对齐

adj=0:这是调整文本位置的参数。

adj=0 表示文本左对齐,adj=1 则表示右对齐,adj=0.5 表示居中对齐。

text(x, y, adj=0, '线性回归:')

3. 部分高级图形 

3.1 条形图

> dframe <-read.csv("D:/demoData/StaBr/example/chap01/example1_1.csv",fileEncoding = "GBK")
> dtable<-table(dframe$性别)
> head(dframe)社区 性别 态度
1 A社区   男 反对
2 B社区   女 反对
3 D社区   女 反对
4 C社区   男 反对
5 A社区   男 赞成
6 D社区   女 反对
> # 条形图
> # xlim x轴范围、width条形宽度 legend显示图例
> barplot(dtable,main="性别分布",
+         col=c("pink",'lightblue'),
+         xlim=c(-2,5),width =0.5)
> # 构造列联表法一with(data, expr, …)函数用于在一个从data构建出的环境中运行R表达式
> dtable2<-with(dframe,table(性别,态度))
> # 构造列联表法二
> dtable2_<-table(dframe$性别,dframe$态度)
> dtable2==dtable2_ #两方法结果一样态度
性别 反对 赞成男 TRUE TRUE女 TRUE TRUE
> # 列联表分段条形图
> barplot(dtable2,legend=TRUE,
+         xlim=c(-2,5),width =1,
+         col=c("pink",'lightblue'),
+         main="不同性别人态度")
> # 列联表并排条形图 beside
> barplot(dtable2,, beside=TRUE,
+         legend=TRUE,xlim=c(0,6),
+         width =0.5,col=c("pink",'lightblue'),
+         main="不同性别人态度")
> 

3.2 直方图和和密度图 

        直方图是数是一个连续变量的概率分布的估计,是一种条形图。 构建直方图包括分间隔(间隔必须相邻)、计算该间隔数据量。纵轴可以有频数和概率两种形式。

        核密度估计是一种非参数估计,通过样本估计未知随机变量的概率分布。把每个设置的x轴序列点根据每个样本作用核函数(概率密度函数)并求平均得到该点估计概率密度,最终得到该样本的估计的概率分布。【2】

> dframe <-read.csv("D:/demoData/StaBr/example/chap01/example1_2.csv",fileEncoding = "GBK")
> head(dframe)销售额
1    272
2    181
3    225
4    199
5    188
6    240
> d<-dframe$销售额
> # 频数直方图
> hist(d,col=rainbow(8),main="销售额分布",xlab='x',ylab='频数',ylim=c(0,30))
> # 频率直方图
> hist(d,freq = FALSE ,col=rainbow(8),main="销售额分布",xlab='x',ylab='频率',ylim=c(0,0.026))
> # 用核密度图估计概率分布
> # R 内置核函数 density() 
> lines(density(d),col="red",lwd=1)

3.3 箱型线

        直观看到异常点、最大最小值、中位数和上下四分位数(0.25、0.75)的位置 。

> dframe <-read.csv("D:/demoData/StaBr/example/chap02/example2_2.csv",fileEncoding = "GBK")
> head(dframe)日期 北京 上海 郑州 武汉 西安 沈阳
1 2019/1/1   45   40  158   62  215  114
2 2019/1/2   78   87  200   80  271  103
3 2019/1/3  162   73  204   95  340  103
4 2019/1/4   40   75  325  122  296   63
5 2019/1/5   47   64  142  214  258   51
6 2019/1/6   88   55  119  213  346  110
> boxplot(dframe$郑州)
> with(dframe,boxplot(list('沈阳'=沈阳,'北京'=北京)))

with(d.cancer, boxplot(v0 ~ sex)) #【3】

3.4 正态qq图 

        正态QQ图, 当变量样本来自正态分布总体时, 正态QQ图的散点近似一条直线。

> # 生成符合正态分布的值
> y<-rnorm(100)
> # 做正态qq散点图
> qqnorm(y)
> # 上下两个四分位点的连线
> qqline(y,col='red',lwd=2)

 代码实现qq图,比较是否服从正态【4】

# 真实分布下z值1~250
a <- seq(1, 250, 1)
# 得出某值的累积百分比
t <- (rank(a) -0.5)/length(a)
# 依据标准正态根据真实分布下数据累积百分比生成预期的正态分布的z值
q <- qnorm(t, mean=0,sd=1)
# x轴为用来比较的预期分布q,y轴则为真实数据a的分布情况
plot(q, a)
abline(mean(a), sd(a), col=2, lwd=2)

有关标准线斜率截距的得出【5】:

3.5 散点图

dframe <-read.csv("D:/demoData/StaBr/example/chap01/table1_n.csv",fileEncoding = "GBK")
head(dframe)
with(dframe,plot(金融, 会计,pch=16, col='blue',cex=2))

        利用大小cex可视化数据,增加表达维度:将第三维数据归一化

        利用ifelse和颜色col增加表达维度:条件sex=='M'为真,执行返回’blue‘,否则返回’red‘。

        通过pairs()函数,生成多个变量间,两两变量间散点图矩阵

3.6 曲线图

        使用 curve(f(x),x_left,x_right) plot(type='l')做曲线图。

> # 做法1,第一个参数要以x为自变量
> curve(dnorm(x),-2,2,main='plot_l')
> # 做法2
> plot(seq(-2,2,0.1),dnorm(seq(-2,2,0.1)),type='l',main='plot_l')

        绘制多条曲线 

> x<-seq(-2*pi,2*pi,length=1000)
> y1<-sin(x)
> y2<-cos(x)
# Lty指定实线,lwd表示线宽,xlim表示作图x轴范围
> matplot(x,cbind(y1,y2),lty=1,lwd=2,col=c('red','blue'),xlab='x_value',ylab='',xlim=c(-(1/2)*pi,(1/2)*pi),type='l')
# 在图中做直线,h是水平线、v则表示竖线
> abline(h=0,v=0,col='gray')

参考 

 【1】[3]R语言在数据处理上的禀赋——par参数详解(一) - 编程狗的博客 - 博客园 (cnblogs.com)

【2】核密度图(kernel density plot)原理详解和代码实现 - 知乎 (zhihu.com)

【3】26 基本R绘图 | R语言教程 (pku.edu.cn)

【4】正态性检验之qqplot和ppplot原理及R语言实现 - 简书 (jianshu.com)

【5】26 基本R绘图 | R语言教程 (pku.edu.cn)

相关文章:

R语言做图

目录 1. 图形参数 2. 低级图形 3. 部分高级图形 参考 1. 图形参数 图形参数用于设置图形中各种属性。 有些参数直接用在绘图函数内&#xff0c;如plot函数可以用 pch&#xff08;点样式&#xff09;、col&#xff08;颜色&#xff09;、cex&#xff08;文字符号大小倍数&…...

跟着我一步两步三步,用开源方式将AI带入企业

“AI有开源派与闭源派&#xff0c;你挺哪一派&#xff1f;”这是红帽公司针对媒体所做的一次小调查。结果显示&#xff0c;坚定的开源派占50%&#xff0c;挺闭源的仅有5.56%。如果是你&#xff0c;又会怎样选择&#xff1f; 如何才能让AI在企业中快速平稳落地&#xff0c;并且开…...

天途重磅推出无人机教管平台3.1版及飞课APP

天途无人机教管平台&#xff0c;是一款为院校和培训机构等企业级客户提供的公开版无人机在线培训系统&#xff0c;包含后台管理的【教管平台】和终端的【掌上天途APP】。 天途历经4年上百次调研和迭代打磨&#xff0c;已为一百多家院校和培训机构等企业级客户解决了无人机教学和…...

虚幻引擎 Gerstner Waves -GPU Gems 从物理模型中实现有效的水体模拟

这篇文章重点在于结合GPU Gems一书中有关Gerstner Waves 的数学公式&#xff0c;在虚幻引擎中复现正确的Gerstner Waves和正确的法线 文中内容整理自书中&#xff0c;并附带我的理解&#xff0c;与在虚幻引擎中的实现&#xff0c;可以参考原文看这篇文章&#xff0c;原文网上很…...

Labview_网络流

网络流的介绍 网络流是一种易于配置、紧密集成的动态通信方法&#xff0c;用于将数据从一个应用程序传输到另一个应用程序&#xff0c;其吞吐量和延迟特性可与 TCP 相媲美。但是&#xff0c;与 TCP 不同的是&#xff0c;网络流直接支持任意数据类型的传输&#xff0c;而无需先…...

让生产管理变简单

随着业务的发展&#xff0c;工厂每天要处理很多订单&#xff0c;还要统筹安排各部门工作以及协调上下游加工企业&#xff0c;生产管理问题也随之而来。 1.销售订单评审困难、无法及时抓取到历史数据做参考。由于数据的不及时性、不准确性无法为正常的生产和采购提供数据支撑。同…...

MySQL与SQLite的区别

MySQL 和 SQLite 是两种常见的关系型数据库管理系统&#xff0c;但它们在设计目标、架构和使用场景上有显著的区别。以下是它们的主要区别&#xff1a; 1. 架构与模式 MySQL&#xff1a; 客户端/服务器模式&#xff1a;MySQL 采用 C/S 架构&#xff0c;数据库服务器运行在一…...

Hi3861 OpenHarmony嵌入式应用入门--LiteOS Event

CMSIS 2.0接口使用事件标志是实时操作系统&#xff08;RTOS&#xff09;中一种重要的同步机制。事件标志是一种轻量级的同步原语&#xff0c;用于任务间或中断服务程序&#xff08;ISR&#xff09;之间的通信。 每个事件标志对象可以包含多个标志位&#xff0c;通常最多为31个&…...

Centos+Jenkins+Maven+Git 将生成的JAR部署到Jenkins服务器上

背景:前一篇写的是Jenkins和项目应用服务器不在同一个服务器上。但是有的公司可能不会给Jenkins单独弄一个服务器。可能就会出现Jenkins就搭建在某一个应用服务器上。这种情况的参考如下的操作。 1、登录 没有安装的参考下面的安装步骤先安装: Jenkins安装手册 输入账号、…...

性能评测系列(PT-010):Spring Boot + MySQL,高并发insert

一、测试概述 测试场景 场景编号&#xff1a; PT-010场景描述&#xff1a; Java应用&#xff0c;MySQL单表写测试目的&#xff1a;指定规格、配置、环境下&#xff0c;Java应用数据库简单写场景负载能力评估。&#xff08;不含调优&#xff0c;所测结果未必是最优结果&#x…...

网站改成HTTPS方法

网站改成HTTPS只要网站没有特殊性的要求&#xff0c;绝大部分网站很轻松的就可以完成&#xff0c;尤其是CMS类似的网站系统或者自助搭建的网站&#xff08;比如&#xff1a;这种网站可以在网站后台一次性安装并且生效&#xff09;。 基本要求 将网站改成HTTPS有2个前提&#…...

智慧社区:居民幸福生活的保底线,价值非常大。

大屏应该能够显示社区内的关键数据&#xff0c;如人流量、车辆数量、垃圾分类情况等。这些数据可以通过图表、数字、地图等形式展示&#xff0c;以便居民和管理者能够直观地了解社区的情况。 智慧社区可视化大屏成为一个有益于社区管理和居民生活的工具&#xff0c;提供实时、准…...

《昇思25天学习打卡营第1天|NapKinG》

昇思MindSpore 学习昇思大模型的第一天,先了解一下此模型的架构,设计理念,以及层次结构,昇思大模型(MindSpore)的优点有很多,易开发,高效执行,全场景统一部署,是一个全场景深度学习框架 易开发的具体表现为API友好,调试难度低,高效执行包括计算效率,数据预处理效率和分布式训练…...

Java项目毕业设计:基于springboot+vue的幼儿园管理系统

数据库:MYSQL5.7 **应用服务:Tomcat7/Tomcat8 使用框架springbootvue** 项目介绍 管理员&#xff1b;首页、个人中心、用户管理、教师管理、幼儿信息管理、班级信息管理、工作日志管理、会议记录管理、待办事项管理、职工考核管理、请假信息管理、缴费信息管理、幼儿请假管理…...

CPU1511作为CPU1513的智能IO设备

一、把一个IO控制器作为另一个IO控制器的IO设备来使用 1、在智能设备通信里定义好传输区后&#xff0c;导出GSD文件 2、在另一个项目程序内添加GSD文件 3、当作PLC的IO设备组态&#xff0c;并连接至PLC_1 4、在右侧更改I区、Q区地址与名称 5、硬件编译并下载&#xff0c;此…...

docker 安装与常用指令

1. docker 安装 sudo yum install -y yum-utilssudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.reposudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginsudo systemctl enable do…...

如何将 gz 文件通过 local data 导入 OceanBase?

在很多领域&#xff0c;数据的传输是基于 csv&#xff0c;并且&#xff0c;为了方便&#xff0c;属于同一张表的多个 csv 文件还是打包成 gz 文件进行传输。 当 gz 文件传输到下游时&#xff0c;需要将 gz 中的 csv 数据导入数据库&#xff0c;最直接的方法是&#xff1a; 在…...

electron+vue3+vite

1.创建工程 开源的electron构建脚手架&#xff1a;GitHub - electron-vite/electron-vite-vue: &#x1f973; Really simple Electron Vite Vue boilerplate. 1.使用命令创建工程&#xff08;node版本在16上&#xff09; npm create electron-vite 2.项目目录结构 2.安装依…...

react笔记-04redux篇

redux和react-redux笔记&#xff0c;以及项目中如何使用&#xff0c;对redux的封装&#xff0c;让其使用类似于vuex一样方便。 一、redux 1. redux工作流程 流程&#xff1a;创建action > dispatch分发action > 交给store > reducer加工数据返回给store 2. redux的…...

oracle 等待事件

1.db file scattered read 含义&#xff1a;当一个SQL语句需要从数据文件中读取多块非连续的数据块时&#xff0c;就会发生db file scattered read等待事件。这意味着数据分散在不同的位置&#xff0c;数据库需要进行多次I/O操作来收集所需的信息。场景&#xff1a;这种事件常…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略&#xff08;地理位置/文件&#xff09; 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型&#xff0c;核心实现方式&#xff1a; 标准消息类型&#xff1a;直接使用 SDK 内置类型&#xff08;文件、图片等&#xff09;自…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...