R语言绘图基础
R语言绘图基础
#图形初阶
setwd(dir=“D:/Rcode”)#设置操作空间的路径
attach(mtcars)#对数据框进行绑定
plot(wt,mpg)
abline(lm(mpg~wt))
title(“Regression of MPG on weight”)
detach(mtcars)#对数据框解除绑定
#这里我们自己写一个数据框
year<-c(2019:2010)
major<-paste(“c”,1:10)
set.seed(123)#设置随机种子。设置了随机种子每次的随机数时相同的。
Pscore<-sample(40:50,10,replace=T)#replace=T表示产生的是整数
Escore<-sample(50:60,10,replace=T)
result<-data.frame(year,major,Pscore,Escore)
result
attach(result)
plot(Pscore,Escore)
abline(lm(Escore~Pscore))
title(“regression of Escore on Pscore”)
detach(result)
pdf(“result.pdf”)#图片保存为pdf格式
jpeg(“result.jpg”)#图片保存为jpg格式
attach(result)
plot(Pscore,Escore)
abline(lm(Escore~Pscore))
title(“regression of Escore on Pscore”)
detach(result)
dev.off()
#通过plot()或者boxplotz()
#来创建一幅新图形时,通常会覆盖掉先前的图形。
#防止图形被覆盖的方法
dev.new()#每次画图的时候新开一个窗口
plot(Pscore,Escore)
#3.2一个简单的例子,描述的是病人对两种药物不同剂量的响应
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
#把这部分数据合成一个数据框
mark<-data.frame(dose,drugA,drugB)
dev.new()
p1<-plot(dose,drugA,type=“o”)#type 有多个选项:b是线条+点,p表示加点
#还有o,s,h,n类型可以分别跑一下看看
jpeg(“p1.jpg”)
?plot
#3.3图形参数
#通过par()函数对图形参数的指定
dev.new()
??par()
opar<-par(no.readonly=T)#no.readonly=T这一步使得图形参数可改
par(lty=“dashed”,pch=8)#参数lty的设置:可以用数字,
#也可以用字符串,设置对应的规则如下
#lty(0=blank, 1=solid (default), 2=dashed,
#3=dotted, 4=dotdash, 5=longdash, 6=twodash)
#or as one of the character strings
#“blank”, “solid”, “dashed”, “dotted”,
#“dotdash”, “longdash”, or “twodash”,
plot(dose,drugA,type=“b”)
par((opar))
#pch设置不同的图形
#cex设置par图形大小
#lwd设置线条的粗细,默认值=1
dev.new()
plot(dose,drugA,type=“b”,lwd=4,pch=8,cex=4)
#method 2
dev.new()
par(no.readonly=T,lty=6,lwd=3,pch=7,cex=2)
plot(dose,drugA,type=“b”)
#3.3.2颜色参数的设置
#col默认的绘图颜色
#col.axis坐标轴刻度文字的颜色
#col.lab 坐标轴标签的颜色
#col.main标题颜色
#col.sub 副标题颜色
#fg 图形的前景色
#bg 图形的背景色
#在R中,可以通过颜色下标,颜色名称,十六进制的颜色值,
#RGB值或HSV来指定颜色
#col=1,col=“white"col=”#FFFFFF"col=rgb(1,1,1)和col=hsv(0,0,1)
#以上均是白色的不同表示方法
colors()#用于返回所有的可用颜色的名称
#R语言的在线图图表网站
#http://rearch.stowers-institute.org/efg/R/Color/Chart
#R中还有很多创建连续性颜色向量的函数:包括rainbow()
#heat.colors(),terrain.colors(),topo.colors()以及cm.colors()
install.packages(“RColorBrewer”)
#RColorBrewer可以创建吸引人的颜色配对
library(RColorBrewer)
n<-7
mycolors<-brewer.pal(n,“Set1”)
barplot(rep(1,n),col=mycolors)
brewer.pal.info
#文本属性
#cex对数值和标签等进行缩放
#cex.axis 更改坐标轴刻度的缩放倍数
#cex.lab 坐标轴标签的缩放倍数
#cex.main 坐标轴标题的缩放倍数
#cex.sub 坐标轴副标题的缩放倍数
#font 更改字体的样式
#3.3.4图形尺寸与边界尺寸
#pin以英寸表示的图形
#mai以数值向量表示边界大小,顺序为下左上右,单位为英寸
#mar以数值向量表示边界大小,顺序为下左上右,单位为英分
par(pin=c(4,3),mai=c(1,.5,1,2))#参数设置
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
setwd(dir=“D:/Rcode”)
dev.new()
opar<-par(no.readonly=T)
par(pin=c(2,3),mai=c(1,.5,1,2))
par(lwd=2,cex=1.5)##lwd设置线条的粗细,默认值=1
par(cex.axis=.75,font.axis=3)
plot(dose,drugA,type=“b”,pch=19,lty=2,col=“red”)
#plot(dose,drugB,type=“b”,pch=23,lty=6,col=“blue”,bg=“green”)
#pch设置散点图形,lty设置线条类型
par(opar)
#3.4添加文本,自定义坐标轴和图例
dev.new()
plot(dose,drugA,type=“b”,
col=“red”,lty=3,pch=9,lwd=2,
main=“Clinical Trials for Drug A”,
sub=“This is hypothetical data”,
xlab=“Dosage”,ylab=“Drug Response”,
xlim=c(0,60),ylim=c(0,70))
#这里的xlab,ylab设置的坐标轴标题,xlim和ylim设置了x与y轴的范围。
#3.4.1也可以使用title()函数为图形添加标题人和坐标轴标签
#调用格式为
#3.4.2坐标轴
#可以利用axis()创建坐标轴
#side一个整数,表示在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右)
#at 一个数值型向量,表示需要绘制刻度线的位置
#labels 一个字符向量,表示至于刻度线旁边的文字标签(如果为NULL,直接用at
#中的标签)
#pos坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值)
#lty线条类型
#col线条与刻度线颜色
#las 标签平行(las=0)或垂直(las=1)于坐标轴
x<-c(1:10)
y<-x
z<-10/z
opar<-par(no.readonly=T)
par(mar=c(5,4,4,8)+0.1)
plot(x,y,type=“b”,
pch=21,col=“red”,
yaxt=“n”,lty=3,ann=F)
lines(x,z,type=“b”,pch=22,col=“blue”,lty=2)
dose<-c(20,30,40,45,60)
drugA<-c(16,20,27,40,60)
drugB<-c(15,18,25,31,40)
mark<-data.frame(dose,drugA,drugB)
attach(mark)
n1<-par(no.readonly=T)
#颜色part
dev.new()
plot(dose,drugA,type=“b”,xlab=“dose”,ylab=“drugA”,col.axis=“red”,
col.lab=“blue”,fg=“green”,bg=“pink”,
main=“point figure”, sub=“dose”,col.main=“red”,
col.sub=“blue”)
#文本属性font必须是整数
#font中1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体
plot(dose,drugA,type=“b”,xlab=“dose”,ylab=“drugA”,font.axis=2,
font.lab=2,font.main=2,font.sub=2,
col.axis=“red”,
col.lab=“blue”,fg=“green”,bg=“pink”,
main=“point figure”, sub=“dose”,col.main=“red”,
col.sub=“blue”)
#缩放cex
plot(dose,drugA,type=“b”,xlab=“dose”,ylab=“drugA”,font.axis=2,
font.lab=2,font.main=2,font.sub=2,
cex.lab=2,cex.main=4,cex.sub=0.5,cex.axis=2,
col.axis=“red”,
col.lab=“blue”,fg=“green”,bg=“pink”,
main=“point figure”, sub=“dose”,col.main=“red”,
col.sub=“blue”)
#3.4.1标题函数的使用
#title()
dev.new()
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”,pch=9,lty=2,lwd=2)
title(main=“Clinical Trials for Drug A”,
sub=“This is hypothetical data”,
cex.main=2.5,cex.sub=1.5,cex.lab=0.5,
xlab=“Dosage”,ylab=“Drug Response”,
col.main=“red”,col.sub=“blue”,
col.lab=“blue”)#只能是col.lab而不能是col.xlab
#坐标轴函数的使用
#axis()的使用
setwd(dir=“D:/Rcode”)
#side是一个整数,1=下,2=左,3=上,4=右
#at一个数值型向量,表示需要绘制刻度线的位置
#lables一个字符型向量,表示置于刻度线旁边的文字标签
#pos坐标抽绘制位置的坐标
#lty线条类型
#col线条和刻度线的颜色
#las,tck等
#实际的案例
dev.new()
x<-c(1:10)
y<-x
z<-10/x
Epar<-par(no.readonly=T)#生成一个可供修改的图形参数列表
par(mar=c(5,4,4,8)+0.1)
plot(x,y,type=“b”,
pch=21,col=“red”,
yaxt=“n”,lty=3,ann=F)
lines(x,z,type=“b”,pch=22,col=“blue”,lty=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 values”,
ylab=“Y=X”)
par(Epar)
#3.4.3参考线
#函数abline()用于添加参考线
abline(h=c(1,5,7))
#表示在y为1,5,7的位置添加了水平实线
#3.4.4图例
#legend()函数可以用于添加图例
#location指定图例位置
#title图例标题的字符串
#legend图例标签组成的字符型向量
#图例的实例
dev.new()
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 = T)
par(lwd=2,cex=1.5,font.lab=2)#lwd表示线条的粗细
plot(dose,drugA,type=“b”,
pch=15,lty=1,col=“red”,ylim=c(0,60),
main=“DrugA vs. DrugB”,
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=“grey”)
library(Hmisc)
install.packages(“Hmisc”)
minor.tick(nx=3,ny=3,tick.ratio=0.5)
legend(“topleft”,inset=.05,title=“Drug Type”,c(“A”,“B”),lty=c(1,2),
pch=c(15,17),col=c(“red”,“blue”))
par(opar)
#3.4.5文本标注
#可以通过text()和mtext()函数将文本添加到图形上。
#text()可向绘制文本内添加文本
#mtext()则是向图形的四个边界之一添加文本
#案例
dev.new()
attach(mtcars)
plot(wt,mpg,
main=“Mileage vs. Car 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
dev.new()
opar<-par(no.readonly=T)
par(cex=2)
plot(1:7,1:7,type=“n”)
text(3,3,“Example 1”)
text(5,5,“Example 2”)
text(6,6,“Example 3”)
par(opar)
#3.4.6数学标注
#plotmath()可以实现为图形主题或边界上添加数学符号
#3.5图形的组合
#par()函数和layout()函数可以实现将多幅图组合为一幅图
#案例实战
dev.new()
attach(mtcars)
opar<-par(no.readonly=T)
par(mfrow=c(2,2))#创建图形排列的行列mfrow=c(nrows,ncols)
plot(wt,mpg,main=“Scatterplot of wt vs. mpg”)
plot(wt,disp,main=“Scatterplot of wt vs. disp”)
hist(wt,main=“Histogram of wt”)
boxplot(wt,main=“Boxplot of wt”)
par(opar)
detach(mtcars)
#示例2
attach(mtcars)
opar<-par(no.readonly=T)
par(mfrow=c(3,1))
hist(wt)
hist(mpg)
hist(disp)
par(opar)
detach(mtcars)
#layout()函数
#layout(mat),mat是一个矩阵,规定了每个图形的位置
#示例3
dev.new()
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=T))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
#matrix(c(1,1,2,3),2,2,byrow=T)
#为了更加精确地控制每一幅图的大小,可以有选择地在layout()函数中
#使用widths和heights=两个参数
dev.new()
attach(mtcars)
layout(matrix(c(1,1,2,3),2,2,byrow=T),widths=c(3,1),heights=c(1,2))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)
#图形布局的精细控制
dev.new()
opar<-par(no.readonly=T)
par(fig=c(0,0.8,0,0.8))
plot(mtcars
w
t
,
m
t
c
a
r
s
wt,mtcars
wt,mtcarsmpg,
xlab=“Miles Per Gallon”,
ylab=“Car Weight”)
par(fig=c(0,0.8,0.55,1),new=T)
boxplot(mtcars
w
t
,
h
o
r
i
z
o
n
t
a
l
=
T
,
a
x
e
s
=
F
)
p
a
r
(
f
i
g
=
c
(
0.65
,
1
,
0
,
0.8
)
,
n
e
w
=
T
)
b
o
x
p
l
o
t
(
m
t
c
a
r
s
wt,horizontal=T,axes=F) par(fig=c(0.65,1,0,0.8),new=T) boxplot(mtcars
wt,horizontal=T,axes=F)par(fig=c(0.65,1,0,0.8),new=T)boxplot(mtcarsmpg,axes=F)
mtext(“Enhanced Scatterplot”,side=3,outer=T,line=-3)
par(opar)
# 欢迎使用Markdown编辑器
你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
## 新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
1. **全新的界面设计** ,将会带来全新的写作体验;
2. 在创作中心设置你喜爱的代码高亮样式,Markdown **将代码片显示选择的高亮样式** 进行展示;
3. 增加了 **图片拖拽** 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
4. 全新的 **KaTeX数学公式** 语法;
5. 增加了支持**甘特图的mermaid语法[^1]** 功能;
6. 增加了 **多屏幕编辑** Markdown文章功能;
7. 增加了 **焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置** 等功能,功能按钮位于编辑区域与预览区域中间;
8. 增加了 **检查列表** 功能。
[^1]: [mermaid语法说明](https://mermaidjs.github.io/)
## 功能快捷键
撤销:<kbd>Ctrl/Command</kbd> + <kbd>Z</kbd>
重做:<kbd>Ctrl/Command</kbd> + <kbd>Y</kbd>
加粗:<kbd>Ctrl/Command</kbd> + <kbd>B</kbd>
斜体:<kbd>Ctrl/Command</kbd> + <kbd>I</kbd>
标题:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd>
无序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd>
有序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd>
检查列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd>
插入代码:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd>
插入链接:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>L</kbd>
插入图片:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>G</kbd>
查找:<kbd>Ctrl/Command</kbd> + <kbd>F</kbd>
替换:<kbd>Ctrl/Command</kbd> + <kbd>G</kbd>
## 合理的创建标题,有助于目录的生成
直接输入1次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成1级标题。
输入2次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用`TOC`语法后生成一个完美的目录。
## 如何改变文本的样式
*强调文本* _强调文本_
**加粗文本** __加粗文本__
==标记文本==
~~删除文本~~
> 引用文本
H~2~O is是液体。
2^10^ 运算结果是 1024.
## 插入链接与图片
链接: [link](https://www.csdn.net/).
图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)
带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30)
居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)
居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30)
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
## 如何插入一段漂亮的代码片
去[博客设置](https://mp.csdn.net/console/configBlog)页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 `代码片`.
```javascript
// An highlighted block
var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' |
‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" |
“Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash |
– is en-dash, — is em-dash |
创建一个自定义列表
-
Markdown
- Text-to- HTML conversion tool Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
-
注脚的解释 ↩︎
上一篇: 跨域系列问题及解决方案总结