当前位置: 首页 > 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;这种事件常…...

练习(含atoi的模拟实现,自定义类型等练习)

一、结构体大小的计算及位段 &#xff08;结构体大小计算及位段 详解请看&#xff1a;自定义类型&#xff1a;结构体进阶-CSDN博客&#xff09; 1.在32位系统环境&#xff0c;编译选项为4字节对齐&#xff0c;那么sizeof(A)和sizeof(B)是多少&#xff1f; #pragma pack(4)st…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行

项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战&#xff0c;克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

OpenGL-什么是软OpenGL/软渲染/软光栅?

‌软OpenGL&#xff08;Software OpenGL&#xff09;‌或者软渲染指完全通过CPU模拟实现的OpenGL渲染方式&#xff08;包括几何处理、光栅化、着色等&#xff09;&#xff0c;不依赖GPU硬件加速。这种模式通常性能较低&#xff0c;但兼容性极强&#xff0c;常用于不支持硬件加速…...

Monorepo架构: 项目管理模式对比与考量

关于 monorepo 相关概念及项目管理模式 在软件开发中&#xff0c;尤其是前端项目&#xff0c;我们会涉及到不同的项目管理模式&#xff0c;这里先介绍几个重要的概念“monorepo”是当前较为热门的一种项目管理方式&#xff0c;虽然很多人可能听说过&#xff0c;但可能在实际项…...

DeepSeek11-Ollama + Open WebUI 搭建本地 RAG 知识库全流程指南

&#x1f6e0;️ Ollama Open WebUI 搭建本地 RAG 知识库全流程指南 &#x1f4bb; 一、环境准备 # 1. 安装 Docker 和 Docker Compose sudo apt update && sudo apt install docker.io docker-compose -y# 2. 添加用户到 docker 组&#xff08;避免 sudo 权限&…...

(33)课54:3 张表的 join-on 连接举例,多表查询总结。数据库编程补述及游标综合例题。静态 sqL与动态sqL(可带参数)

&#xff08;112&#xff09;3 张表的 join-on 连接举例 &#xff1a; &#xff08;113&#xff09; 多表查询总结 &#xff1a; &#xff08;114&#xff09;数据库编程补述 &#xff1a; 综合例题 &#xff1a; 以上没有动手练习&#xff0c;不知道这样的语法是否…...