R语言统计分析——图形文本、自定义坐标轴和图例

news2024/10/5 23:12:18

参考资料:R语言实战【第2版】

        我们可以在图形上添加标题(main)、副标题(sub)、坐标轴标签(xlab、ylab)并指定标轴范围(xlim、ylim)。

# 录入数据
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
# 绘图
plot(dose,drugA,type='b',
     col='red',lty=2,pch=2,lwd=2,
     main='Clinical Trials for DrugA',
     sub="This is hypothetical Response",
     xlab='Dosage',ylab='Drug Response',
     xlim=c(0,60),ylim=c(0,70))

1、标题

        可是使用title()函数为图形添加标题和坐标轴标签。调用格式如下:

title(main='main title',sub='subtitle',xlab='x-axis label',ylab='y-axis label')

       函数title()一般来说被用于添加信息到一个默认标题和坐标轴标签被ann=FALSE选项被移除的图形中。

        函数title()中也可以指定其他图形参数(如文本大小、字体、旋转角度和颜色)。如下代码将生成红色的标题和蓝色的副标题,以及比默认大小小25%的绿色x轴、 y轴标签:

plot(dose,drugA,type='b')
title(main="My Title",col.main='red',
      sub='My Subtitle',col.sub='blue',
      xlab='My x label',ylab='My y label',
      col.lab='green',cex.lab=0.75)

2、坐标轴

        我们可以使用axis()来创建自定义的坐标轴,而非使用R中的默认坐标轴。其格式为:

axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,...)

side:一个整数,表示在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右)

at:一个数值型向量,表示需要绘制刻度线的位置

labels:一个字符型向量,表示置于刻度线旁边的文字标签(如果为NULL,则直接使用at中的值)

pos:坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值)

lty:线条类型

col:线条和刻度线的颜色

las:标签是否平行于(=0)或垂直于(=2)坐标轴

tck:刻度线的长度,以相对于绘图区与大小的分数表示(负值表示在图形外侧,正值表示在图形内侧,0表示禁用刻度,1表示绘制网格线),默认值为-0.01。

        自定义坐标轴时,我们应当禁用高级绘图函数自动生成的坐标轴。参数axes=FALSE将禁用全部坐标轴(包括坐标轴框架线)。参数xaxt="n"和yaxt="n"将分别禁用X轴或Y轴(会留下框架线)。

# 生成数据
x<-c(1:10)
y<-x
z<-10/x
# 参数设置
opar<-par(no.readonly=TRUE)
# 增加边界大小
par(mar=c(5,4,4,8)+0.1)
# 绘制x对y的图形
plot(x,y,type='b',
     pch=2,col='red',
     yaxt='n',lty=3,ann=FALSE)
# 添加x对1/x的直线
lines(x,z,type='b',pch=22,col='blue',lty=2)
# 自定义坐标轴
axis(2,at=x,labels=x,col.axis='red',las=2)
axis(4,at=z,labels=round(z,digits=2),
     col.axis='blue',las=2,cex.axis=0.7,tck=-0.01)
# 添加标题和文本
mtext('y=1/x',side=4,line=3,cex.lab=1,las=2,col='blue')
title('An Example of Creative Axes',
      xlab="X value",
      ylab='Y=X')
par(opar)

3、参考线

        函数abline()可以用来为图形添加参考线。其使用格式:

abline(h=yvalues,v=xvalues)

        函数abline()中也可以指定图形参数(如线条类型、颜色和宽度)。如下:

abline(h=c(1,5,7))
abline(v=seq(1,10,2),lty=2,col='blue')

4、图例

        当图形中包含的数据不止一组时,图例可以帮助我们辨别每个条形、扇形区域或折线各代表哪一类数据。我们可以使用函数legend()来添加图例。其使用格式为:

legend(location,title,legend,...)

location:我们可以直接给定图例左上角的x、y坐标,也可以执行locator(1),然后通过鼠标单击给出图例的位置,还可以使用关键字bottom、bottomleft、left、topleft、top、topright、right、bottomright、或center放置图例。如果我们使用了前面的某个关键字,我们还可以同时使用参数inset=指定图例向图形内侧移动的大小(以绘图区域大小的分数表示)

titile:图例标题的字符串(可选)

legend:图例标签组成的字符型向量

        其他常用的图例选项包括用于指定盒子样式的bty、指定背景色的bg、指定大小的cex,以及指定文本颜色的text.col。指定horiz=TRUE将水平放置图例。

# 录入数据
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
# 设置参数
opar<-par(no.readonly=TRUE)
par(lwd=2,cex=1.5,font.lab=2)
# 绘制图形
plot(dose,drugA,type='b',
     pch=15,lty=1,col='red',ylim=c(0,60),
     main='Drug A vs. Drug B',
     xlab='Drug Dosage',ylab='Drug Response')
lines(dose,drugB,type='b',
      pch=17,lty=2,col='blue')
# 绘制参考线
abline(h=c(30),lwd=1.5,lty=2,col='gray')
# 添加次刻度
library(Hmisc)
minor.tick(nx=3,ny=3,tick.ratio=0.5)
# 添加图例
legend('topleft',inset=0.05,title='Drug Type',
       c("A","B"),lty=c(1,2),pch=c(15,17),
       col=c('red','blue'))
par(opar)

5、文本标注

        我们可以通过函数text()和mtext()将文本添加到图形上。text()可向绘图区域内添加文本;而mtext()则向图形的四个边界之一添加文本。使用格式分别为:

text(location, "text to place", pos, ...)

mtext("text to place", side, line=n,...)

location:文本的位置参数。可以为一对x、y坐标,也可通过指定location为locator(1)使用坐标交互地确定摆放位置。

pos:文本相对于位置参数的方位。1=下,2=左,3=上,4=右。如果制定了pos,就可以同时指定参数offset=作为偏移量,以相对于单个字符宽度的比例表示。

side:指定用来放置文本的边。1=下,2=左,3=上,4=右。我们可以指定参数line=来内移或外移文本,随着值得增加,文本将外移。也可以使用adj=0将文本向左下对齐,或使用adj=1右上对齐。

# 示例1
attach(mtcars)
  plot(wt,mpg,
       main='Mileage vs.Weight',
       xlab='Weight',ylab='Mileage',
       pch=18,col='blue')
  text(wt,mpg,
       row.names(mtcars),
       cex=0.6,pos=4,col='red')
detach(mtcars)

# 示例2
opar<-par(no.readonly=TRUE)
par(cex=1.5)
plot(1:7,1:7,type='n')
text(3,3,"Example of default text")
text(4,4,family='mono','Example of mono-spaced text')
text(5,5,family='serif','Example of serif text')
par(opar)

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

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

相关文章

JAVA反编译工具-CFR(class单个反编译、JAR包整体反编译)

环境说明 1、win10 2、JAVA8&#xff08;环境变量要配置好&#xff09; 3、cfr版本&#xff1a;C:\Users(xx)当前用户\cfr-0.152.jar 4、命令行操作路径&#xff1a;C:\Users(xx)当前用户 5、示例反编译jar包&#xff1a;C:\Users(xx)当前用户\ruoyi-admin.jar CFR工具相关参…

HarmonyOs修改应用名称和图标方法

最近在开发Harmony应用&#xff0c;发现修改app.json5下的lable:app_name和icon不生效 后来经过查找&#xff0c;原来还需要更改entry下的src/main/module.json5才行&#xff0c;具体操作路径是&#xff1a; 更改后生效&#xff1a;

LeetCode刷题之HOT100之不同的二叉搜索树

1、题目描述 2、逻辑分析 给定一个有序序列 1⋯n&#xff0c;为了构建出一棵二叉搜索树&#xff0c;我们可以遍历每个数字 i&#xff0c;将该数字作为树根&#xff0c;将 1⋯(i−1) 序列作为左子树&#xff0c;将 (i1)⋯n 序列作为右子树。接着我们可以按照同样的方式递归构建…

读AI未来进行式笔记11丰饶时代与奇点

1. 第四次工业革命 1.1. 在AI轰轰烈烈地拉开第四次工业革命帷幕的同时&#xff0c;一场清洁能源革命也紧锣密鼓地展开 1.1.1. 清洁能源革命好比一场“及时雨”&#xff0c;不但将解决日益加剧的全球气候变化问题&#xff0c;而且会大幅降低全世界的电力成本 1.1.2. 人们将致…

谷歌发布HyperDreameBooth:单张人像20秒内完成模型训练,速度比DreamBooth快25倍,模型小10000倍

HyperDreamBooth是谷歌去年发布的革命性模型训练方法&#xff0c;单张人像20秒内完成模型训练&#xff0c;速度比DreamBooth快25倍&#xff0c;模型小10000倍&#xff0c;但是没有不开源。 今年&#xff0c;论文《HyperDreamBooth: HyperNetworks for Fast Personalization of…

【沟通管理】项目经理《葵花宝典》之跨部门沟通

为什么每次跟其它部门的沟通总是不欢而散&#xff1f; 为什么每次想好好的就事论事的时候&#xff0c;却总是像在吵架&#xff1f; 为什么沟通总是不同频&#xff1f; 这是不是你作为项目经理在跨部门沟通时经常会遇到的问题&#xff1f; 在企业项目管理中&#xff0c;跨部门沟…

32岁TVB「最强关系户」快速上位,嫁巨星家族屡传婚变。

现年32岁的王敏奕贵为总经理曾志伟的新抱,经常被外界以「家嫂」称呼,而王敏奕近年亦凭出色演技获大赞,继在TVB剧集《婚后事》中饰演Mira一角,介入陈自瑶与罗子溢的婚姻,被封为「港版最美小三」之后,早前在剧集《家族荣耀之继承者》中大展「哭功」,获观众激赞! 除了演技…

平板消解加热台-温度均匀,防腐蚀-实验室化学分析

DBF系列防腐电热板 是精致路合金加热板块表面经进口高纯实验级PFATeflon氟塑料防腐不粘处理&#xff0c;专为实验室设计的电加热产品&#xff0c;是样品前处理中&#xff0c;加热、消解、煮沸、蒸酸、赶酸等处理的得力助手。可以满足物理、化学、生物、环保、制药、食品、饮品…

国内院线电影票api接口如何开发小程序

要开发一个基于国内院线电影票API接口的小程序&#xff0c;你需要遵循以下步骤&#xff1a; 1. 确定API提供方 首先&#xff0c;你需要确定一个提供电影票API接口的服务商。这可能是一个电影票务平台、院线自己的API服务&#xff0c;或者是一个第三方的数据提供商。 2. 阅读…

opencv roi改进版

点击鼠标左键开始画roi,右键或者回车代表画框完毕 并且做了封装。 import cv2 import numpy as npclass ROIDrawer:def __init__(self, image_path):self.drawing = Falseself.ix, self.iy = -1, -1self.roi = Noneself.image_o = cv2.imread(image_path)self.image = self.…

vue中使用emit

1. vue中使用emit 1.1. 在子组件中触发事件 1.1.1. 子组件示例 (ChildComponent.vue) 1.2. 在父组件中监听事件 1.2.1. 父组件示例 (ParentComponent.vue) vue3中使用emit 1.3. 使用 setup 函数和 defineEmits 1.3.1. 子组件示例 (ChildComponent.vue)1.3.2. 父组件示例 (Pare…

Python入门教程 - 模块、包(八)

目录 一、模块的概念 二、模块的导入方式 三、案例演示 3.1 import模块名 3.2 from 模块名 import 功能名 3.3 from 模块名 import * 3.4 as定义别名 四、自定义模块 4.1 制作自定义模块 4.2 测试模块 4.3 注意事项 4.4 __all__ 五、Python包 5.1 包的概念 5.2 …

大数据学习——linux操作系统(Centos)安装mysql(Hive的元数据库)

一. 准备工作 1. 打开虚拟机并连接shell工具 2. 将mysql安装包上传至虚拟机 mysql安装包 提取码&#xff1a;6666 将下载好的jar包拖至install_package目录下 3. 检查环境 rpm -qa|grep mariadb 如果上述命令返回有结果 那么进行mariadb的卸载 rpm -e --nodeps mariadb-l…

【全开源】快递寄件小程序源码(FastAdmin+ThinkPHP+原生微信小程序)

&#x1f4e6;快递寄件小程序&#xff1a;轻松寄送&#xff0c;便捷生活 &#x1f69a;一、引言&#xff1a;告别繁琐&#xff0c;让寄件更简单 在繁忙的生活中&#xff0c;寄送快递往往成为我们的一大难题。传统的寄件方式需要前往快递公司网点&#xff0c;填写繁琐的寄件信…

二十二、Jar包制作及使用

1、什么是Jar包&#xff1f; Jar包&#xff08;Java ARchive&#xff09;就是.class字节码文件的标准压缩包&#xff0c;是 Java 的一种文档格式. 2、Jar是不是压缩包&#xff1f; 是&#xff01; JAR 格式允许压缩文件以提高存储效率。 1、传输平台扩展。 Java 扩展框架&am…

解决使用Jmeter进行测试时出现“302“,‘‘401“等用户未登录的问题

使用 JMeter 压力测试时解决登录问题的两种方法 在使用 JMeter 进行压力测试时&#xff0c;可能会遇程序存在安全验证&#xff0c;必须登录后才能对里面的具体方法进行测试&#xff1a; 如果遇到登录问题&#xff0c;通常是因为 JMeter 无法模拟用户的登录状态&#xff0c;导…

Java | Leetcode Java题解之第148题排序链表

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode sortList(ListNode head) {if (head null) {return head;}int length 0;ListNode node head;while (node ! null) {length;node node.next;}ListNode dummyHead new ListNode(0, head);for (int subL…

【机器学习】支持向量机(个人笔记)

文章目录 SVM 分类器的误差函数分类误差函数距离误差函数C 参数 非线性边界的 SVM 分类器&#xff08;内核方法&#xff09;多项式内核径向基函数&#xff08;RBF&#xff09;内核 源代码文件请点击此处&#xff01; SVM 分类器的误差函数 SVM 使用两条平行线&#xff0c;使用…

JavaEE大作业之班级通讯录系统(前端HTML+后端JavaEE实现)PS:也可选网络留言板、图书借阅系统、寝室管理系统

背景&#xff1a; 题目要求&#xff1a; 题目一&#xff1a;班级通讯录【我们选这个】 实现一个B/S结构的电子通讯录&#xff0c;其中的每条记录至少包含学号、姓名、性别、班级、手机号、QQ号、微信号&#xff0c;需要实现如下功能&#xff1a; &#xff08;1&#xff09;…

7.Nginx动静分离

介绍 把动态和静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离。 动静分离从目前实现角度分为两种: 1.纯粹把静态文件独立成单独的域名,放在独立的静态资源服务器上,目前主流推崇的方案。 2.动态和静态文件混合在一起发布,通过nginx来分开。 通过loc…