当前位置:网站首页>R语言作图:坐标轴设置
R语言作图:坐标轴设置
2022-07-23 17:56:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
要绘制一张赏心悦目的统计图表,坐标轴的设置至关重要。在R语言底层作图中,对坐标轴的调整主要通过调整plot函数、axis函数和title函数的一系列参数完成。
plot(x,y, …)
axis(side,at = NULL, labels = TRUE, tick = TRUE, line = NA,
pos= NA, outer = FALSE, font = NA, lty = “solid”,
lwd = 1, lwd.ticks = lwd, col = NULL,col.ticks = NULL,
hadj = NA, padj = NA, …)
title(main= NULL, sub = NULL, xlab = NULL, ylab = NULL,
line = NA, outer = FALSE, …)
一、plot函数的准备
在个性化设置坐标轴之前中,通常需调整plot函数中的ann、bty、xaxt、yaxt、xaxs和yaxs参数:
ann取FALSE时将不会画出标题(包括主、副标题及坐标轴标题);
bty用来设置边框形式,默认值为”o”,表示四面边框都画出,其余可选值包括”l”(左下)、”7″(上右)、”c”(上下左)、”u”(左下右)、”]” (上下右)和”n”(无,即不画边框),在很多个性化绘图中,bty设为”n”,后期的边框线再使用其他函数(如axis)自行添加;
xaxs和yaxs 用来设置x轴和y轴的范围,默认值取“r”,表示坐标轴比给定作图范围(参数xlim和ylim给出的范围)稍微大一点儿,取”i”时表示坐标轴范围与给定作图范围完全相同,另外还可取”s”、”e”、”d”;
xaxt和yaxt 取”n”时,坐标轴、刻度线以及刻度值将不会画出。
x <- seq(-4, 4, 0.01)
y <- x^2
par(mfrow = c(2, 2), mar = c(4, 4, 1, 1))
plot(x, y) # 未作处理
plot(x, y, xaxs = "i", yaxs ="i") # 绘图边框未留白
plot(x, y, bty = 'l') # 只保留左和下两条边框
plot(x, y, ann = F, bty = "n", xaxt = "n", yaxt ="n") # 边框、坐标轴都去掉二、axis函数的用法
1、基本操作
side表示要操作的坐标轴,取值1、2、3、4分别代表下、左、上、右;
at表示刻度线及刻度值所在位置;
labels表示刻度值;
las表示坐标刻度值文字方向,las=0表示文字方向与坐标轴平行,1表示始终为水平方向,2表示与坐标轴垂直,3表示终为垂直方向。
x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(1, 2), mar = c(4, 4, 1, 1))
#未设置文字方向
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4)
axis(2,seq(0, 16, 4), seq(0, 16, 4))
#文字方向水平
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)2、字体字号
cex.axis表示坐标轴刻度值的字号大小,
font.axis表示坐标轴刻度值的字体,font=1表示正体,2表示黑体,3表示斜体,4表示黑斜体。
x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(2, 2), mar = c(4, 4, 1, 1))
#未设置字体字号
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4)
#cex.axis = 2
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, cex.axis = 2)
#font.axis = 2
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, font.axis = 2)
#font.axis = 3
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, font.axis = 3)3、颜色
col表示图的颜色,用在axis函数中表示坐标轴线和坐标刻度线的颜色;
col.axis表示坐标轴刻度值的颜色;
col.ticks表示坐标轴刻度线的颜色。
x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(2, 2), mar = c(4, 4, 1, 1))
#未设置颜色
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4)
#col = 2
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, col = 2)
#col.axis = 2
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, col.axis = 2)
#col.ticks = 2
plot(x,y, ann = F, bty = "n", xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, col.ticks = 2)4、位置
line表示坐标轴线位置与图像边框的距离,取负数时会画在图像边框以内;
mgp默认值为c(3, 1, 0),三个数字分别代表坐标轴标题、刻度值和轴线与绘图边框的距离;
tcl默认值为-0.5,数值表示刻度线长度,负值表示刻度线朝外,正值朝里;
pos 表示轴线所在的位置;
line.outer取TRUE时,坐标轴将画在画布边缘处;
hadj指将刻度值沿平行坐标轴方向调整的距离;
padj指将刻度值沿垂直坐标轴方向调整的距离。
x <- seq(-4, 4, 0.01)
y <- x^2
par(mfrow= c(2, 2), mar = c(4, 4, 1, 1))
# 未设置刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4)
# 使用line调整刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4, line = 2)
# 使用mgp调整刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4, mgp = c(3, 2, 0))
# 使用padj调整刻度值位置
plot(x, y, ann = F, xaxt = "n", yaxt ="n")
axis(1, -4:4, -4:4, padj = 1)5、其他
tick取FALSE时,坐标轴线和刻度线不画出;
lty表示线型,用在axis函数中表示坐标轴线型;
lwd表示线的粗细,用在axis函数中表示坐标轴线粗细;
lwd.ticks表示刻度线粗细。
三、title函数的用法
main、sub、xlab和ylab分别表示主标题、副标题、x轴标题和y轴标题;
cex.lab表示坐标轴标题的字号大小;
font.lab表示坐标轴标题的字体;
col.lab表示坐标轴标题的颜色;
其余参数和axis中用法一致。
x<- seq(-4, 4, 0.01)
y<- x^2
par(mfrow=c(2, 2), mar = c(4, 4, 1, 1))
#无标题
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4)
axis(2,seq(0, 16, 4), seq(0, 16, 4))
#使用title设置标题
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)
title(xlab= 'x', ylab = 'y')
#使用line调整位置
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)
title(xlab= 'x', ylab = 'y', line = 2)
#调整颜色字体字号
plot(x,y, ann = F, xaxt = "n", yaxt = "n")
axis(1,-4:4, -4:4, las = 1)
axis(2,seq(0, 16, 4), seq(0, 16, 4), las = 1)
title(xlab= 'x', ylab = 'y', col.lab = 2, font.lab = 4, cex.lab = 2)四、刻度间隔
plot函数会自动给出比较合理的刻度间隔,本质上是调用了pretty函数。
pretty(x, n = 5, min.n = n %/% 3, shrink.sml = 0.75, high.u.bias = 1.5, u5.bias = .5 + 1.5*high.u.bias, eps.correct = 0, …)
x是一个序列,pretty函数会先对x取一个range,然后等分为大约n+1个间隔。如果在作图时对系统自动给出的间隔不满意,可以调整n的值,用pretty函数自定义合适的间隔。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126792.html原文链接:https://javaforall.cn
边栏推荐
- How can win11 add 3D effects to pictures? Win11 method of adding picture 3D effect
- 数据链路层 -------- 以太网 和 ARP
- Alibaba's latest masterpiece! It took 187 days for the liver to come out. 1015 pages of distributed full stack manuals are so delicious
- 公链之Sui(前脸书/Meta员工成立的新公链项目)
- Monotonic queue optimization DP
- PowerCLi 将虚拟机从Host01主机移动到Host02主机
- Weights & biases (I)
- Why are there Chinese materials and web pages for foreign chips?
- A preliminary study of the relationship between combinatorial mathematics and DP, and the derivation of resettable combinatorial formulas
- 还在用Xshell?你out了,推荐一个更现代的终端连接工具
猜你喜欢

Mee | Zhejiang University Chenglei group develops a new method for designing and constructing synthetic flora

Elk notes 25 - experience APM quickly

AE 教程,如何在 After Effects 中对 Illustrator 分图层文档进行动画绘制?

Canvas draw text and clear draw

elk笔记25--快速体验APM

Industry analysis | logistics intercom

Elk note 25 - expérience rapide APM

进程调度的基本过程

PowerCLi 导入 LicenseKey 到esxi
![[shutter -- layout] flexible layout (flex and expanded)](/img/03/0f07a56487f8e91045f9e893e9f96c.png)
[shutter -- layout] flexible layout (flex and expanded)
随机推荐
当代励志“女”录
数据链路层 -------- 以太网 和 ARP
二、MFC窗口和消息
R语言使用quantile函数计算向量数据或者dataframe指定数据列的分位数(百分位数)
R语言ggplot2可视化:使用ggplot2可视化散点图、使用ggpubr包的theme_classic2函数设置可视化图像为经典主题(classic theme with axis lines)
H7-TOOL的I2C接口方式脱机烧录操作方法,已经发布(2022-07-16)
USB3.0: layout guide for vl817q7-c0
Labyrinth DP integration
Still using xshell? You are out. I recommend a more modern terminal connection tool
R语言ggpubr包的ggarrange函数多幅图像组合起来、annotate_figure组合图像添加注释、注解、标注信息、使用top参数在可视化图像顶部添加注解信息(自定义字体颜色、大小、样式)
Codeforces Round #805-#808【部分题解】
PowerCLi 管理VMware vCenter 批量部署导出导入
Elk notes 25 - experience APM quickly
结构体大小的计算(结构体内存对齐)
Elk note 25 - expérience rapide APM
ACM MM 2022 Oral | DIG: 自监督文字识别的新框架,刷新11个公开场景文字数据集的识别性能,平均提升5%...
Mee | Zhejiang University Chenglei group develops a new method for designing and constructing synthetic flora
Type-C Bluetooth speaker single C-Port rechargeable OTG solution
As a background developer, you must know two kinds of filters
Brief introduction of Perl language