基本图形的绘制

在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)

1> hist(x$V3)

1> hist(x$V4)

散点图 plot()

散点图绘制函数plot()

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

柱状图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))

饼图 pie()

饼图绘制函数pie()

1> pie(table(x$V2))

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

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

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

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

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

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

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

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

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

水平放置的箱尾图

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

horizontal=T 设置水平显示

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

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

角线的长度表达值的大小

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

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

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

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

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

适合较少样本的情况

安装aplpack包

1

2> require("aplpack")

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

其它脸谱图

安装TeachingDemos包

1

2> require("TeachingDemos")

> faces2(x)

茎叶图 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)

1> qqline(x$V2)

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

1> qqnorm(x$V3)

1> qqline(x$V3)

图形绘制进阶

散点图进一步设置

在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

连线图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”一样,是折现。

密度图 density()

函数density()

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

R中的内置数据集

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

1data()

热力图 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")

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")

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

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

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

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

用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)

利用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)

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])

1

2

3

4> x

> f

> z

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

1

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

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

地图

安装maps包

显示美国地图:

1

2> library(maps)

> map("state",interior=F)

state 代表美国

世界地图的绘制:

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

社交数据可视化

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

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

  1. r语言中将茎叶图旋转90度_R语言讲义(包括种回归).ppt

    R 语言讲义 吴喜之 免费(没有权力和铜臭) 资源公开, 可改变代码(不是黑盒子,也不是吝啬鬼, 透明是防止"腐败"的最好方式) 容易学习.可编程以实行复杂的课题 可扩展: 通过数 ...

  2. r语言barplot函数图中加标签_R语言中绘制条形图的简单方法

    原标题:R语言中绘制条形图的简单方法 条形图(bar chart)是用宽度相同的条形的高度或长短来表示数据多少的图形.它主要用来展示不同分类(横轴)下某个数值型变量(纵轴)的取值.在实际中,条形图主要 ...

  3. Winform中使用FastReport的PictureObject时通过代码设置图片源并使Image图片旋转90度

    场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  4. html中怎么让竖排表格变成横排,wps中横排表格怎么旋转90度变成竖排?(图)

    wps中的水平工作台如何与垂直方向旋转90度?通常,我们会水平编辑表格,但是在打印时,我们发现表格需要垂直显示.我该怎么办?让我们来看看解决这个问题的方法,有需要的朋友可以参考一下 使用WPS文档编辑 ...

  5. 用C语言简单实现图像的旋转90度

    CCF里面有一道题,让你把图像旋转90度,我用C语言可以简单实现. 样例输入 2 3 1 5 3 3 2 4 样例输出 3 4 5 2 1 3 样例输入 2 3 1 5 3 3 2 4 样例输出 3  ...

  6. python将矩阵顺时针旋转90度_在Python中将方形矩阵逆时针旋转90度的程序

    假设我们有一个正方形矩阵,我们必须将其逆时针旋转90度.147 258 369 那么输出将是789 456 1个23 为了解决这个问题,我们将遵循以下步骤-如果矩阵为空,则返回一个空白列表 n:=矩阵 ...

  7. C语言_将 4×4 的数组逆时针旋转 90 度后输出

    时间:2020年9月6日 16:27:00 /*下面程序的功能是将一个 4×4 的数组进行逆时针旋转 90 度后输出, 要求原始数组的数据随机输入,新数组以 4 行 4 列的方式输出, 请在空白处完善 ...

  8. 安卓开发之自定义SeekBar竖立类(顺时针逆时针旋转90度)

    类名:VerticalSeekBar public class VerticalSeekBar extends SeekBar {private boolean mIsDragging;private ...

  9. 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)...

    背景: 本人的一个移动端H5项目,需求如下: 需求一:手机相册选取或拍摄照片后在页面上预览 需求二:然后绘制在canvas画布上 这里,我们先看一个demo(http://jsfiddle.net/q ...

最新文章

  1. CMD命令,常驻内存的与外部的介绍 还有CMD格式化
  2. 初学数位DP--hdu 2089
  3. SHGetFileInfo函数详解
  4. 为什么魂斗罗只有 128 KB却可以实现那么长的剧情?
  5. Retroifit原理
  6. JavaScript学习(四十九)—构造方法、原型、对象图解
  7. 企业级应用的前端思考。
  8. python3.6.5安装步骤-Ubuntu16.04安装python3.6.5步骤详解
  9. JAVA并发之多线程基础(3)
  10. 33. 数据类型转换
  11. 编写的软件在运行时界面不能移动_常用软件开发工具介绍
  12. SQLServer 2008 r2 下载地址(百度云)及安装图解
  13. java项目开发教材_《Java Web开发实战》——Java工程师必备干货教材
  14. 《深度学习--基于python的理论与实现》学习笔记6:第三章神经网络(2)
  15. 拼音转汉字算法(隐马尔科夫、维特比算法)
  16. 计算机组成原理练习题——机器码与加减运算
  17. libpng warning: iCCP: known incorrect sRGB profile 警告解决
  18. shopee数据分析:虾皮卖家如何正确分析shopee卖场数据?
  19. 以太网MII接口类型大全-MII、RMII、SMII、GMII、RGMII、SGMII、XGMII、XAUI、RXAUI
  20. java小米面经_java小米面经,面试题整理(三面)

热门文章

  1. shell实现大批量word转码然后分析相关字段
  2. 通过服务器给多台计算机装系统,局域网有100多台电脑怎么 同时装系统
  3. c语言统计行数单词数字符数,C语言统计字数行数单词数的程序
  4. android 延时拍照,手机如何延时拍摄 手机延时拍摄技巧有哪些
  5. 60佳灵感来自大自然的网页设计作品欣赏
  6. GL(m)的拓扑结构,泡利矩阵暂记
  7. QQ文件和公告不显示
  8. 20秋PHP作业1,南开17秋学期(清考)《电子商务理论与实践》在线作业1
  9. wms仓库管理系统带来的效益
  10. 【Procmon教程2】如何揪出篡改注册表的元凶?