r语言中将茎叶图旋转90度_R语言(02)绘图

基本图形的绘制

在R语言(01)中,最后的一个综合训练,我们生成了一部分数据,现在我们就用这些数据为例,来展示R是如何绘制一些图表的。

数据的导入

通过读取数据文件,我们可以导入之前产生的数据。

1

2

3

4

5

6

7

8

9

10

11

12

13> x=read.table("mark.txt",header=F)

> x

V1 V2 V3 V4

1 10378001 99 73 98

2 10378002 86 95 90

3 10378003 98 85 84

4 10378004 90 81 100

5 10378005 81 88 96

6 10378006 99 63 61

7 10378007 88 79 100

8 10378008 88 92 95

9 10378009 91 91 100

...

其中V1列是学好,V2是均匀分布的成绩数据,V3和V4是正太分布的数据,其中V4对超过100的数据取100。

直方图分析 hist()

绘制直方图函数hist()

1> hist(x$V2)

ca058b911c396b6dff699550da78ddc1.png

1> hist(x$V3)

c526597cfd93e19f9cbf3a1fdb104e0c.png

1> hist(x$V4)

4360342c1842da2771a32967444c3586.png

散点图 plot()

散点图绘制函数plot()

1> plot(x$V1,x$V2)

b7eef7247615ffc67df1a18a88d931df.png

柱状图barplot()

列联函数table(),柱状图绘制函数barplot()

1

2

3

4

5

6

7> table(x$V2)

80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

1 5 7 3 3 4 6 8 7 4 7 8 4 4 5 2 6 2 4 8

100

2

> barplot(table(x$V2))

40a124475289638a0c91f5f09ff899b2.png

饼图 pie()

饼图绘制函数pie()

1> pie(table(x$V2))

e95dffbee7a14ae413bc6a9bb72e3308.png

箱尾图箱子的上下横线为样本的25%和75%分为数

箱子中间的横线为样本的中位数

上下延伸的直线称为尾线,尾线的尽头为最高值和最低值

异常值是箱外部的个别与大多数样本相距很远的样本数据

1> boxplot(x$V2,x$V2,x$V3)

755e7da9f897ad790a467a04548ea1ea.png

1> boxplot(x[2:4],col=c("red","green","blue"),notch=T)

x[2:4] 是值第2到4列

col=c(“red”,”green”,”blue”) 分别指定每个箱尾图的颜色

notch=T 是控制中间的缺口的 主要是让用户更清楚的看到中位线

f36c23bd0eec101dbf2f2739ea228d8d.png

水平放置的箱尾图

1> boxplot(x$V2,x$V2,x$V3,horizontal=T)

horizontal=T 设置水平显示

d8b0bcff32e6d59dd00719a275294bb8.png

星相图 stars()每个观测单位的数值表示为一个图形

每个图的每个角表示一个变量,字符串类型会标注在图的下方

角线的长度表达值的大小

1> stars(x[c("V2","V3","V4")])

06749ebf7e743855e11ff4bb3b837bbe.png

星相图另一种表示:雷达图

1> stars(x[c("V2","V3","V4")],full=T,draw.segment=T)

9cb279456f34f33108ef807774abb881.png

人脸图用五官的宽度和高度来描绘数值

人对脸谱高度敏感和强记忆

适合较少样本的情况

安装aplpack包

1

2> require("aplpack")

> faces(x[c("V2","V3","V4")])

131c1d0f7279483675e396c3134d1872.png

其它脸谱图

安装TeachingDemos包

1

2> require("TeachingDemos")

> faces2(x)

ab1bf765e45a79c077906fbe2c414f93.png

茎叶图 stem()1

2

3

4

5

6

7

8

9

10

11

12> stem(x$V3)

The decimal point is 1 digit(s) to the right of the |

6 | 0233

6 | 88

7 | 000111222333333

7 | 55556677888888888999999999

8 | 0000011111112223333333444444

8 | 5556666788888899

9 | 001224

9 | 559

6 | 0233 代表60,62,63,63四个样本数据.茎叶图没有图像输出,是一种高密集型的数据展现形式。

QQ图可用于判断是否正态分布(服从正态分布的点基本都处于同一直线)

直线的斜率是标准差,截距是均值

点的散布越接近直线,则越接近正态分布

1> qqnorm(x$V2)

ca6b7762f7f07bdabd731035c29afc1a.png

1> qqline(x$V2)

0833fe53d088a95c14dd9638d03382cc.png

x$V3 数据服从正态分布,点基本都处于同一直线上:

1> qqnorm(x$V3)

b3dcffd51aa129ed1e9d34e8508f61fa.png

1> qqline(x$V3)

3a1c709cd7e36c0243ce0bd3b7ae2467.png

图形绘制进阶

散点图进一步设置

在mac上绘图时显示中文,需要安装以下安装包:

showtext

showtextdb

sysfonts

1

2

3

4> library(sysfonts)

> library(showtext)

> dev.new() #如果已打开图形设备,本句可以不用

> showtext.begin()

加入这几句之后,绘制的图像中就可以正常显示中文了。

1

2

3

4

5

6

7

8

9

10> plot(x$V2,x$V3,

main="数学分析与线性代数成绩的关系",

xlab="数学分析",

ylab="线性代数",

xlim=c(0,100),

ylim=c(0,100),

xaxs="i", #Set x axis style as internal

yaxs="i", #Set y axis style as internal

col="red", #Set the color of plotting symbol to red

pch=19) #Set the plotting symbol to filled dots

4342b09ca331c42ebd67b48764dad6de.png

连线图1

2

3> a=c(2,3,4,5,6)

> b=c(4,7,8,9,12)

> plot(a,b,type="l")

type=”l” 代表想字母”l”一样,是折现。

48272813c2893a52f4521716531ebf73.png

密度图 density()

函数density()

1> plot(density(rnorm(1000)))

47c6ddb0901d0ae1757acbf4aa5bf981.png

R中的内置数据集

在R中输入data可查看内置数据集:

1data()

713ba0a62e22d743667f2a3d3df5d8d8.png

热力图 heatmap()

利用内置的mtcars数据集绘制

1

2

3

4

5

6

7> heatmap(as.matrix(mtcars),

Rowv=NA,

Colv=NA,

col=heat.colors(256),

scale="column",

margins=c(2,8),

main="Car characteristics by Model")

188c15b0c1dcf91f920cbd2a6b9632b9.png

Iris(鸢尾花)数据集Sepal花萼

Petal花瓣

Species种属

这是一个非常著名的数据集,Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。

1

2

3

4

5

6

7

8

9

10

11

12

13

14> iris

Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1 5.1 3.5 1.4 0.2 setosa

2 4.9 3.0 1.4 0.2 setosa

3 4.7 3.2 1.3 0.2 setosa

4 4.6 3.1 1.5 0.2 setosa

5 5.0 3.6 1.4 0.2 setosa

6 5.4 3.9 1.7 0.4 setosa

7 4.6 3.4 1.4 0.3 setosa

8 5.0 3.4 1.5 0.2 setosa

9 4.4 2.9 1.4 0.2 setosa

10 4.9 3.1 1.5 0.1 setosa

11 5.4 3.7 1.5 0.2 setosa

...

向日葵散点图 sunflowerplot()用来克服散点图中数据点重叠问题

在有重叠的地方用一朵“向日葵花”的花瓣数目来表示重叠数据个数

1> sunflowerplot(iris[,3:4],col="gold",seg.col="gold")

e954834ad1ad8985593ef0b5616cb7e8.png

散点图集遍历样本中全部的变量配对画出二元图

直观地了解所有变量之间的关系

将iris数据集的第1到4列的数据取出,两两组合,形成散点图。

1> pairs(iris[,1:4])

2e25d6652acb0d8306ec2e95d42118b8.png

用plot也可以实现同样的效果

1

2

3

4

5

6> plot(iris[,1:4],

main="Relationships between

characteristics of iris flowers",

pch=19,

col="blue",

cex=0.9)

af8b6781bcbd0fadb6f671314e9f034a.png

利用par()在同一个device输出多个散点图

Par命令博大精深,用于设置绘图参数,help(par)

1

2> par(mfrow=c(3,1))

> plot(x$V2,x$V3);plot(x$V3,x$V4);plot(x$V4,x$V1)

902387ee5080d934b39f1cda69ae4dc5.png

par(mfrow=c(3,1)) 把屏幕划分成3个水平区域

plot(x1,x2);plot(x2,x3);plot(x3,x1); 分别将三个散点图显示在这三块区域中。

如果想深入学习R语言图像绘制,建议对par()函数的文档深入学习,并且学习《R Graphs Cookbook》这本书,会有很大收获的。

颜色colors()

查看有哪些颜色 colors()

1

2

3

4

5

6

7

8

9

10

11

12

13

14> colors()

[1] "white" "aliceblue" "antiquewhite"

[4] "antiquewhite1" "antiquewhite2" "antiquewhite3"

[7] "antiquewhite4" "aquamarine" "aquamarine1"

[10] "aquamarine2" "aquamarine3" "aquamarine4"

[13] "azure" "azure1" "azure2"

[16] "azure3" "azure4" "beige"

[19] "bisque" "bisque1" "bisque2"

[22] "bisque3" "bisque4" "black"

[25] "blanchedalmond" "blue" "blue1"

[28] "blue2" "blue3" "blue4"

[31] "blueviolet" "brown" "brown1"

[34] "brown2" "brown3" "brown4"

...

绘图设备

1

2

3

4

5

6

7

8> dev.cur() # 当前图形窗

> dev.list() # 查看现在所有的图形窗

> dev.next(which=dev.cur()) #某个图形窗的后一个图形窗

> dev.prev(which=dev.cur()) #某个图形窗的前一个图形窗

> dev.off(which=dev.cur()) #关闭某个图形窗

> dev.set(which=dev.next()) #设置图形窗

> dev.new(...) #开启新的图形窗

> graphics.off() #关闭整个窗口

三维散点图

安装scatterplot3d包

1

2> library(scatterplot3d)

> scatterplot3d(x[2:4])

25631de899f97ed01fab8d6b7397d44e.png

1

2

3

4> x

> f

> z

> contour(x,y,z,col="blue")

8a498eb75309b392db34bf1d22477d21.png

1

2> contour(x,y,z,col="blue")

> persp(x,y,z,theta=30,phi=30,expand=0.7,col="lightblue")

33b05b422af848de3b00c05dae3a4957.png

地图

安装maps包

显示美国地图:

1

2> library(maps)

> map("state",interior=F)

f0104c503c5fdef8ca7d835f6bc2952e.png

state 代表美国

世界地图的绘制:

1> map("world",fill=T,col=heat.colors(10))

0555e1bb5b0217a6abf7463f1654257f.png

社交数据可视化

通过R可以画出如下的facebook社交关系图:

68649c67dd69e21e30eac22e6b18d199.png

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言小总结(基础篇)

🐱‍🐉🐱‍🐉🐱‍🐉一起来干R语言,冲冲冲!!! 🤗🤗🤗欢迎大佬们来指点指点鸭~~~ 参考资料: 1.多元统计分析及R语…

APISpace 生日密码API

APISpace 的 生日密码 API,根据出生日期查询生日密码。每个人的生日都是个迷,星相命理给我们生命的启示,不同的生日都会有不同的命运。生日总有神奇的暗示,凭出生日期的数字测出内在性格和潜在力量。这里帮你揭开【生日密码】的神秘面纱。 返…

R 多元数据可视化

多元数据可视化 1.数据描述2.调入数据3.条图3.1 按行做均值条图3.2 按列做均值条图 4.箱尾图5.星相图5.1具有图例的360度星相图5.2具有图例的180度星相图 6. 脸谱图(需加载aplpack)7. 调和曲线图(需加载mvstats包)8. 案例全部程序…

R(现代统计图形)软件的使用

1.R软件的下载安装 1.R官网地址:https://www.r-project.org/ 2.下载流程: 3.安装: 双击运行,语言简体中文,问题不大,都懂的,能不装C盘就不装: 后面我都默认。 4.安装成功&…

面向IoT的协议选择思考

对于使用传感器和保持连接性的IoT系统而言,如何使用这些元素和多种互联网技术相结合呢? 互联网协议并不陌生, 但是IoT相关的互联网协议可能是有不同, 有些协议被用来辅助塑造系统。TCP/IP协议栈上有多个应用层协议, 每种协议都有自己的优势和…

【多元统计分析与R语言】【详解】使用教材P84页表3-2进行多元数据简单R分析:定量变量的分析(直方图、散点图)、定性变量的分析并绘制绘制均值条图、箱尾图、星相图、调和曲线图

可视化[教材P84页表3-2] 1.题目2.题目详解2.1.多元数据简单R分析:定量变量的分析(直方图、散点图)、定性变量的分析(单因素分析、多维列联表)。参考教材P45-P52页。2.2.绘制均值条图、箱尾图、星相图、调和曲线图。参考…

星相

今天看了一个死于白血病17岁男孩的盘,心情沉重。人逃不过宿命,当这个宿命是死亡的时候,就额外让人无奈。尤其是,你看到命运已经这样写下了。我还是比较喜欢卜卦盘,简单直接。问的问题也比较不关痛痒,跟这个…

R语言实战--R语言数据可视化中各种图形的函数命令及含义(散点图,星相图,箱线图等)

散点图 > plot(x1,x2)直方图 可以用来表示不同值出现的频率 > hist(x$x1)箱线图 > boxplot(x$x1,x$x2,x$x3)箱子中间的黑色粗线为样本的中位数。比如第一个图为90箱子的上下横线分别表示样本的25%分位线以及75%分位线,意思是有25%的样本数在上横线以上。…

R以国民CPI数据为例绘制箱尾/条状/星相/饼图

本博文源于暨南大学的mooc课程《多元数据统计分析》,如果大家没有装R语言的,可以查看此博文,手把手带你装R R语言安装 下面我们就开始今天的学习吧(ps:博主看matlab看哭了,太难了)。 国民CPI数据分析准备 我会把这个数据上传至资…

取代ChatGPT,腾讯的二次元生成器居然成海外网友新宠​

海外爆红,服务器被挤垮,还顺手普及了点中文? —— 文|杜晨 编辑|VickyXiao 图片来源 | 腾讯 还在沉溺于 ChatGPT 无法自拔? 外国网友早就 move on 了! 这两天,另一个AIGC&#…

当 ChatGPT 教我学操作系统

还记得 2021 年 11 月 8 号我开始写 Linux 0.11 的源码解读系列。 当初为了写这个系列,把 Linux 0.11 源码和相关解读的书籍都翻烂了,查阅资料理解代码的过程非常痛苦,有的时候一个小的卡点就要好几天才能整明白。 就比如最开头的位于 boots…

《花雕学AI》你知道人工智能ChatGPT在10秒钟里能写出多少种标题吗?我试了24次,惊呆了!

今天准备测试AI绘画,使用几个不同的AI平台来生成猫娘图片,以此具体学习绘图的AI咒语。这篇博客用什么标题好呢?于是,我开始关心如何优化标题,还是老办法,不懂就问ChatGPT(没有正式账号&#xff…

【固收研究】资金面分析

资金面,参考了一些友商的研究,主要是看货币政策,一般是从两个角度出发,一个是回购市场方面,也就是央行的公开操作;另一个是利率方面,主要是分析同业存单利率,也叫从存单市场方面进行…

建议设计师一定要尝试的副业排名TOP1!

要说这年头最苦逼的职业,我觉得非建筑设计师不可! 每次项目结束,甲方嗨了,领导爽了,只有咱们设计师继续爆肝下一个需求。 毕竟在项目里,甲方爸爸就负责拍拍脑袋,抛个时间,再闭着眼…

Python+Qt桌面端与网页端人工客服沟通工具

程序示例精选 PythonQt桌面端与网页端人工客服沟通工具 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonQt桌面端与网页端人工客服沟通工具>>编写代码&#xff0c;代码整洁…

科技云报道:“火到爆炸”的ChatGPT,为何当不了智能客服?

科技云报道原创。 任何新兴技术都像一个奇点&#xff0c;充满无限可能、无限想象。你永远无法想到它将以怎样的姿态呈现在人们的面前。 21世纪以前&#xff0c;“AI大爆炸”的设想似乎还只是科幻小说家们杞人忧天的设想。 如今&#xff0c;却有越来越多的人开始严肃地思考一…

TCP连接超时机制

前言 众所周知,TCP协议是一个可靠的的协议。TCP的可靠性依赖于大量的 Timer 和 Retransmission 。现在咱们就来细说一下TCP协议的那些Timer Connection-Establishment Timer 在TCP三次握手创建一个连接时&#xff0c;以下两种情况会发生超时&#xff1a; client发送SYN后&am…

golang http 连接超时和传输超时

golang 测试代码 package mainimport ("net/http""net/url""fmt""io/ioutil""time""net""crypto/tls" )func TimeoutDialer(cTimeout time.Duration, rwTimeout time.Duration) func(net, addr string…

dbeaver的连接超时(Connection timed out: connect)

项目场景&#xff1a; hiveserver2启动了, 虚拟机 里能启动beeline,并且能连接hive2, 但是就是连接不了win上的dbeaver 问题描述&#xff1a; Could not open client transport with JDBC Uri: jdbc:hive2://192.168.2.104:10001/gmall;authnoSasl: java.net.ConnectExcepti…

Postman 请求超时

Postman发送连接时返回Error: Request timed out 服务器端已经启动&#xff0c;通过Postman进行测试时报错。在查阅各个网站资料后解决方法有两种&#xff0c;一是修改setting中的ssl将其关闭&#xff0c;二是将响应时间改为30000等&#xff0c;都没有解决问题。通过尝试&#…