欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

R语言绘图基础

程序员文章站 2022-05-19 10:21:30
...

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. 项目1
  2. 项目2
  3. 项目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)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. 注脚的解释 ↩︎