首页 > 其他分享 >第十章 可视化

第十章 可视化

时间:2023-08-13 09:11:51浏览次数:28  
标签:表示 颜色 第十章 默认 坐标轴 可视化 图形 col

第十章 可视化

10.1 三种绘图系统

base 图形是最古老的系统,在 R 的存在初期它就已经存在了。base 图形很容易上手,不过它们需要大量的修改甚至一些魔 法咒语才能变得更完美,而且它很难扩展到新的图表类型中。

第二个图形系统 lattice 建立在grid系统之上,它为所有常见的图表类型提供了高级函数。grid 允许你在绘图时涉及系统底层,可以具体指定在哪里画每个点、线或矩形。但当我们想画散点图时,没有人想每次都花大量的时间写几百行代码来实现。

第三个图形系统是 ggplot2 系统。

10.2 三种方式绘制散点图

10.2.1第一种方法:base绘图法

base 中用于绘制散点图的函数就是简单的 plot。由于plot 出现得早 ,所以我们必须把它包括在 with 的函数调用中来访问列

with(数据框, plot(x轴数据, y轴数据))

10.2.2第二种方法:lattice图形系统

lattice 版本的 plot 是 xyplot。它使用了一个公式接口来指定 x 和 y 坐标变量。公式接口使按区域拆分数据变得很容易。我们只需要:追加一个 | 号(这是一个“管 道”字符;与用于逻辑的“或”相同)和我们希望拆分的变量

xyplot(和其他 lattice 函数)还需要一个 data 参数,此参数将告诉它从哪个数据框中寻找变量。

library(lattice) xyplot( y轴数据~ x轴数据, 数据框)

10.2.3第三种方法:ggplot2图形系统

ggplot2 本质上是“语法的” ,这意味着它由众多小的组件构成,因此它更容易创建全新的绘图类型

10.3绘制基础图形

图形 参数
hist(直方图) x 数值向量
breaks 分段区间,取值一个向量(各区间端点)或者一个数字(拆分为多少段),或者一个字符串(计算划分区间的算法名称),或者一个函数(划分区间个数的方法)
freq 是否以频数作图,默认TRUE,画出频数直方图,取值FALSE时画频率直方图
barplot(条形图) height 数值,数据结构必须是向量或者矩阵
beside 默认值为FALSE,每一列都将给出堆砌的“子条”高度,若 beside=TRUE,则每一列都表示一个分组并列
horiz 逻辑值,默认为FALSE,改成TRUE图形变为横向条形图
pie(饼图) x 非负的数值向量,x中的值表示饼图切片的区域
labels 标签,一个或多个给切片命名的表达式或者字符串
radius 半径,取值从-1到1,其中数字表示饼图的半径大小,负数表示从180°开始绘制饼图,正数表示从0°开始绘制饼图
fan.plot(扇形图) X 非负数值向量,表示每个扇形的面积
labels 各扇形标签的字符型向量
boxplot(箱线图) x 数值向量,依次作出箱线图
formula 公式,形式如y ~ grp,其中y是数据集中的数值型向量并且根据grp来划分y的类别,grp通常是因子型数据
data 提供formula数据的数据框
range 一个延伸倍数,箱线图延伸到离箱子两端range *IQR,超过这个范围的数据点就被视作离群点,在图中直接以点的形式表示出来
width 箱子的宽度
varwidth 箱子的宽度与样本量的平方根是否成比例,默认FALSE,不成比例,若为TRUE则成比例
notch 设置图形是否带刻槽,默认为FALSE,如果改为TRUE则绘制矩阵样本x的带刻槽的凹盒图
horizontal 改变图形的方向,默认为FALSE,垂直画图;TURE为水平画图
add 是否将箱线图添加到现有图形上,默认为FALSE
plot(根据作图对象而异,最简单的是散点图) x,y 接收类似向量类型的一维数据。表示x轴和y轴对应的数据。无默认。
pairs(散点图矩阵) x 数值型的矩阵或者数据框,作为散点的坐标。逻辑型和因子型会自动转换为数值型数据
formula 公式,形式如~ x + y + z,其中x、y、z是数据框的列名,作为散点矩阵图的坐标,其对应的列必须是数值型数据,
data 提供formula数据的数据框
labels 变量的名称
panel 面板数据的展示方式,默认为points(散点)
subset 一个可选的向量,指定用于绘制图形的数据子集
na.action 对缺失值的处理方式,默认为跳过缺失值
corrgram(相关图) x 每行作为一个观测值的数据框或者相关系数矩阵
order 变量排序,默认FALSE,相关矩阵按数据框名对变量排序,当order为TRUE时,相关矩阵将使用主成分分析法对变量重排序,这将使得二元变量的关系模式更为明显
lower.panel 主对角线下方的元素类型,取值panel.pie,用饼图的填充比例来表示相关性大小,panel.shade用阴影的深度来表示相关性大小,panel.ellipse 绘制置信椭圆和平滑拟合曲线,panel.pts绘制散点图,panel.conf绘制置信区间,panel.cor绘制相关系数
upper.panel 主对角线上方的元素类型,取值同上
text.panel 取值panel.txt输出的变量名字
diag.panel 控制着主对角线元素类型panel.minmax输出变量的最大最小值
sm.density.compare(核密度图) x 数值向量
Group 分组向量,是因子型数据
stars(星状图) x 一个多维数据矩阵或数据框,每一行数据将生成一个星形
full 逻辑值,决定了是否使用整圆(或半圆),默认为TRUE
scale 是否将数据标准化到区间[0, 1]内,默认为TRUE
radius 是否画出半径,默认为TRUE
labels 每个个体的名称,默认为数据的行名
locations 以一个两列的矩形给出每个星形的放置位置,默认放在一个规则的矩形网格上,若提供给该参数一个长度为2的向量,那么所有的星形都将被放在该坐标上,从而形成蛛网图或雷达图
flip.labels 每个星形底部的名称是否互相上下错位,以免名称太长导致文本之间互相重叠
draw.segments 是否作线段图,即:每个变量以一个扇形表示,默认FALSE
col.segments 每个扇形区域的颜色(当draw.segments为FALSE时无效)
col.stars 设定每个星形的颜色(当draw.segments为时无效)
frame.plot 是否画整个图形的边框
contour(等高图) x、y 数值向量,组合成网格
z 数值向量,网格上的高度数值
levels 一系列等高线的z值,只有这些值或者这些值附近的点才会被连起来
labels 等高线上的标记字符串,默认是高度的数值
method 设定等高线的画法,有三种取值:‘simple’(在等高线的末端加标签、标签与等高线重叠),‘edge’(在等高线的末端加标签、标签嵌在等高线内),‘flattest’(在等高线最平缓的地方加标签、嵌在等高线内)

10.4修改图形参数

通过par()修改图形参数

调用格式:

par(optionname=value,optionname=name,…)

不带参数时,将生成一个含当前图形参数设置的列表

令参数no.readonly=TRUE,可以生成一个可修改的当前图形参 数列表。

以这种方式设定的参数值除非被再次修改,否则将会在会话结 束前一直有效

10.4.1颜色函数

R语言提供了自带的固定种类的颜色,主要涉及的是colors函数,该函数可以生成657中颜色名称,代表657种颜色

colors()

10.4.2修改颜色

RColorBrewer包提供了3套配色方案,分别为连续型,极端型以及离散型。

连续型(Sequential)指生成一系列连续渐变的颜色,通常用来标记连续型数值的大小。共18组颜色,每组分为9个渐变颜色展示。

函数名称 生成原理 使用格式
rgb RGB模型(红绿蓝混合) rgb(red,green,blue,alpha,names=NULL,max=1)
rainbow 彩虹色(赤橙黄绿青蓝紫) rainbow(n,s=1,v=1,start=0,end=max(1,n-1)/n,gamma=1)
heat.coclor 高温、白热化(红黄白) 同rainbow函数
terrain.colors 地理地形(绿黄棕白) 同rainbow函数
topo.colors 蓝青黄棕 同rainbow函数
cm.colors 青白粉红 同rainbow函数
brewer.pal RColorBrewer包提供的3套配色方案 col=brewer.pal(n,"颜色组* ")) 颜色组*:3类配色方案的颜色组名称

极端型(Diverging)指生成用深色强调两端、浅色标示中部的系列颜色、可用来标记数据中的利群点。共9组颜色,每组分为11个渐变颜色展示。

离散型(Qualitative)指生成一系列彼此差异比较明显的颜色,通常用来标记分类数据。共8组颜色,每组渐变颜色数不同。

参数 描述
col 默认的绘图颜色
col.axis 坐标轴刻度文字的颜色
col.lab 坐标轴标签的颜色
col.main 标题的颜色
col.sub 副标题的颜色
fg 图形的前景色
bg 图形的背景色

10.4.3修改点符号和线条

10.4.3.1点样式参数

参数 描述
pch 点的样式,取整数0-25或字符"*","、", "."," o"," O", "0", "+", "-", "|" 等
cex 点的大小,1(默认)表示不缩放,小于1表示缩放,大于1表示放大
col 点边框填充的颜色
bg 点内部填充的颜色,仅限21-25样式的点
font 字体设置,1(默认)为正常字体,2表示粗体,3表示斜体,4表示粗斜体
lwd 点边框的宽度,1(默认)表示正常宽度,小于1表示缩放,大于1表示放大

10.4.3.2线条样式

参数 描述
lty 线条样式,0表示不画线,1表示实线,2表示虚线,3表示点线。
lwd 线条粗细,1(默认)表示正常宽度,小于1表示缩放,大于1表示放大

R语言也提供了绘制不同类别的线条的多种函数

函数 说明 使用格式
lines 在画布中添加曲线,可以设置的参数包括:线条样式(lty)、颜色(col)、粗细(lwd)等 lines(x, lty = , lwd = ,...)
abline 在画布中添加参考线,可以设置的参数包括:直线的截距(a)、直线的斜率(b)、水平线的纵轴值(h)、垂直线的横轴值(v)等 abline(a = NULL, b = NULL, h = NULL, v = NULL, reg = NULL, lty = , lwd = ,...)
segments 两点之间绘制线段,绘制对象是两端点的坐标 segments(x0, y0, x1, y1, lty = , lwd = ,…)
arrows 在线段端点加上箭头,箭头与线段之间的夹角(angle)可调 arrows(x0, y0, x1, y1, angle = , lty = , lwd = ,…)
grid 在绘图的基础上添加网格线,其中ny用户设置水平网格的数目,nx用于设置垂直网格的数据。equilogs是当坐标取了对数之后,是否仍使用等距的网格线 grid(nx = NULL, ny = nx, col =, lty =, lwd =, equilogs = TRUE)
rug x为坐标轴须的位置;ticksize为坐标轴须的长度;side为坐标轴须的位置,默认值1为x轴,取值2时为y轴 rug(x, ticksize =, side =, col =, lty =, lwd =, ...)

10.4.4修改文本属性

参数 描述
cex 字体大小,1(默认)表示不缩放,小于1表示缩放,大于1表示放大
cex.axis 坐标轴刻度文字的缩放倍数
cex.lab 坐标轴标签的缩放倍数
cex.main 标题的缩放倍数
cex.sub 副标题的缩放倍数
col 字体颜色,选项为颜色名称,整数或十六位制数
font 字体样式,1(默认)为正常字体,2表示粗体,3表示斜体,4表示粗斜体
font.axis 坐标轴刻度文字的字体样式
font.lab 坐标轴标签的字体样式
font.main 标题的字体样式
font.sub 副标题的字体样式
ps 字体的磅值, 文本的的最终大小为ps*cex
family 绘制文本使用的字体族,标准取值为serif(衬线),sans(无衬线),mono(等宽)
函数 说明 使用格式
title 添加标题元素,其中main是主标题,sub是副标题,xlab是x轴标题,ylab是y轴标题,选项都是一个列表list(text, font=, col=, cex=,…)或者简单的text,text是文本内容 title(main = NULL, sub = NULL, xlab = NULL, ylab = NULL, line = NA, outer = FALSE,...)
text 在图形中任意位置添加文本,其中x, y 确定标签位置,labels是文本内容 text(x, y = NULL, labels = seq_along(x), cex = 1, col = NULL, font = NULL,...)
mtext 在图形的四条边上添加文本,其中text与labels一样指文字的内容,side取值为整数1~4分别把周边文本作在表示图形的下、左、上、右边。line设置一个距离图形边缘的行数 mtext(text, side = 3, line=0, cex = NA, col = NA, font = NA, ...)

10.4.5设置坐标轴

参数 描述
axes 逻辑参数,如果axes=TRUE(默认),则显示坐标轴,如果axes=FALSE,则隐藏坐标轴。
xaxt/yaxt 坐标轴样式,默认值”s”,表示x /y轴以标准样式显示,取值”n”表示隐藏x /y轴
xaxs/yaxs 坐标轴计算方式,默认值”r”表示把原始数据的范围向外扩大4%,作为x /y轴范围,取值”l”表示x /y轴范围为原始数据范围
xlim/ylim 坐标轴范围,设置为c(from,to) , from是x /y轴的首坐标,to是尾坐标
xlab/ylab 设置坐标轴标签
main 标题
sub 副标题

axis函数来创建自定义的坐标轴,可以使用title()函数为图形添加标题和坐标轴标签:

参数名称 参数解释
side 坐标轴所在的边,1,2,3,4分别表示下,左,上,右
at 通过向量来设置坐标轴内各刻度标记的位置,at参数要与labels向量一一对应
labels 一个向量字符,表示坐标轴各刻度的名称(刻度标记),labels参数要与at向量一一对应
font.axis 刻度标记的字体,1(默认)为正常字体,2表示粗体,3表示斜体,4表示粗斜体。
cex.axis 刻度标记的大小,1(默认)表示正常大小,小于1表示缩放,大于1表示放大
col.axis 刻度标记的颜色,对应颜色名称即可
tick 设置是否画出坐标轴,为TRUE(默认)时,表示画出坐标轴,为FALSE时则不画出,此时并不影响刻度标记labels的展示
lty 坐标轴的样式,tick=TRUE时有效,0表示不画线,1表示实线,2表示虚线,3表示点线
lwd 坐标轴的宽度,tick=TRUE时有效,1(默认)表示正常宽度,小于1表示缩放,大于1表示放大
col 坐标轴的颜色。tick=TRUE时有效,令col等于对应颜色名称即可
col.ticks 坐标轴刻度线的颜色,令col.ticks等于对应颜色名称即可。
注意: col.ticks是指与坐标轴垂直的小刻度线的颜色。col表示设置了除刻度标记(labels)以外的部分颜色,包括col.ticks
pos 坐标轴线绘制位置的坐标,与另一条坐标轴相交位置的值
las 标签是否平行于坐标轴,参数为0时平行于坐标轴,为2时垂直于坐标轴
tck 刻度线的长度,以相对于绘图区域大小的分数表示,负值表示在图形外侧,正值表示在图形内侧,0表示禁用刻度,1表示绘制网格线,默认值为-0.01

10.4.6图形尺寸与边界尺寸

控制图形尺寸和边界大小的参数

参数 描述
pin 以英寸表示的图形尺寸(宽和高)
mai 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英寸
mar 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英分*。默认值为c(5, 4, 4, 2) + 0.1

10.4.7添加图例

参数名称 参数解释
x, y 设置图例的位置(默认左上角位置),除使用x和y参数外,也可以使用字符"bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "center"
legend 一个字符向量,表示图例中的文字
horiz 图例的排列方式,为FALSE(默认)时,图例垂直排列,为TRUE时,图例水平排列
ncol 图例的列数目,当horiz=TRUE时,该项无意义
pch 图例中点的样式,可取0-25,其中0-14为空心点,15-25为实心点;也可以直接通过pch=”+”的方式定义点的样式。
lty 图例中线的样式,0表示不画线,1表示实线,2表示虚线,3表示点线
col 图例中点和线的颜色,令col等于对应颜色名称即可
bg 图例的背景颜色,令bg等于对应颜色名称即可。在bty参数为"n"时无效
bty 设置图例框的样式,取”o”(默认)时表示显示边框,取”n”时表示无边框
xpd 是否在作图区域外作图,默认FALSE,即不允许在作图区域外作图
title 设定图例的标题

10.4.8添加次刻度线

使用Hmisc包中的minor.tick()函数

10.4.9添加参考线

abline(h=yvalues,v=xvalues)

10.4.10文本标注

text():向绘图区域内部添加文本

text(location,”text”,pos,…)

mtext():向图形的四个边界之一添加文本

mtext(“text to place”,side,line=n,..)

除了用来添加文本标注之外,text()函数也通常用来标识图形中的点

10.5绘制组合图形

par函数有丰富的在线参考信息,可以设置大多数绘图的全局参数

参数 描述
mfrow/mfcol 页面摆放,把一个页面平分成n份,表示行数和列数的二维向量,mfrow一行一行从左到右作图,mfcol一列一列从上到下作图
mai/mar 图形边距, mai(英寸边距)和mar(行边距)。四个边距的顺序是下、左、上、右
mgp 坐标轴位置,三维数值向量,依次为标题、刻度标签和刻度的位置
oma 外边界宽度;类似mar,默认为c(0, 0, 0, 0)

与par函数均分画布不同,layout函数可以不均等的分隔页面

参数名称 参数解释
mat 矩阵,提供了作图的顺序以及图形版面的安排,矩阵中的元素为数字1到n,数字的顺序和图形方格的顺序是一样的,相同数字的部分合并成一个绘图区
widths/heights 提供了各个矩形作图区域的长和宽的比例
respect 逻辑值,表示各图形内的横纵轴刻度长度的比例尺是否一样

10.6保存图形

如果希望将当前画布的图形保存到指定路径,可以使用win.metafile函数,bmp函数,tiff函数,svg函数,postscript函数,png函数,jpeg函数等将接下来的图形绘制到指定文件,并用dev.off函数结束关联。可以使用pdf函数将图形保存为PDF文件格式。

标签:表示,颜色,第十章,默认,坐标轴,可视化,图形,col
From: https://www.cnblogs.com/simpleness/p/17626120.html

相关文章

  • Ubuntu安装桌面版可视化
    安装软件包aptinstallubuntu-desktopxrdp-y配置权限adduserxrdpssl-certsystemctlrestartxrdp配置root登陆期间遇到未配置参数的时候,密码是对的但是就是登陆不了。所以建议还是操作一下比较好,配置完后需要重启一下。sudosed-i'/auth[[:space:]]*required[[:space:]]*pa......
  • R语言空气污染数据的地理空间可视化和分析:颗粒物2.5(PM2.5)和空气质量指数(AQI)|附代码数
    最近我们被客户要求撰写关于空气污染数据的研究报告,包括一些图形和统计输出。由于空气污染对公众健康的不利影响,人们一直非常关注。世界各国的环境部门都通过各种方法(例如地面观测网络)来监测和评估空气污染问题介绍全球的地面站及时测量了许多空气污染物,例如臭氧、一氧化碳、颗粒......
  • Python用 PyMC3 贝叶斯推理案例研究:抛硬币和保险索赔发生结果可视化
    全文链接:https://tecdat.cn/?p=33416原文出处:拓端数据部落公众号介绍在这里,我们将帮助客户将PyMC3用于两个贝叶斯推理案例研究:抛硬币和保险索赔发生。方法:回想一下,我们最初的贝叶斯推理方法是:设置先前的假设,并根据启发式、历史或样本数据建立我们数据的“已知已知”。形......
  • R语言结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例|附代
    原文链接:http://tecdat.cn/?p=25044原文出处:拓端数据部落公众号最近我们被客户要求撰写关于结构方程模型的研究报告,包括一些图形和统计输出。1简介在本文,我们将考虑观察/显示所有变量的模型,以及具有潜在变量的模型。第一种有时称为“路径分析”,而后者有时称为“测量模型”。......
  • 12个ggplot2扩展包帮你实现更强大的可视化
    ggplot2自从2007年推出以来,成为世界范围内下载最频繁、使用最广泛的R包之一。许多人包括ggplot2的创建人HadleyWickham将这一成功归功于ggplot2背后的哲学。这个软件包的灵感来源于LelandWilkinson编写的《图形语法》一书,在此书中将graphs分解成scales和layers,并将原始数据与表......
  • 分享几款公司都在用的国内可视化工具软件
    可视化不单单指数据可视化,还包含了信息可视化、2D可视化、3D可视化等,可视化工具为前端设计人员提供了一种更简单的方法来创建可视化的表示形式。它们通常通过拖拉拽组件的形式实现可视化效果。根据不同的项目需求选择合适的可视化工具将节省大量时间和资源。在这里,数维图小编为您......
  • [数据分析与可视化] Python绘制数据地图5-MovingPandas绘图实例
    MovingPandas是一个基于Python和GeoPandas的开源地理时空数据处理库,用于处理移动物体的轨迹数据。关于MovingPandas的使用见文章:MovingPandas入门指北,本文主要介绍三个MovingPandas的绘图实例。MovingPandas官方仓库地址为:movingpandas。MovingPandas官方示例代码仓库地址为:movin......
  • 可视化数据分析工具是什么?可以用来做什么?
    在当今的信息时代,数据已经成为了各行各业的重要资产,也是决策的基础和驱动力。然而,数据本身是无法直接为我们提供价值的,我们需要对数据进行分析和挖掘,才能发现其中的洞察和启示。而要进行有效的数据分析,就需要借助一些专业的工具,其中最常用的就是可视化数据分析工具。可视化数据分析......
  • 关于智能家居可视化管理平台的建议
    一、方案背景随着现代信息社会的发展,人民的生活水准也在不断提升,人身及财产的安全的需求越来越高。老人在家带孩子的现象普遍存在,老人和小孩成了年轻人的牵挂,工作之余都会都想看看家里的情况。有时候出门忘记关火、带东西等,只能回去处理,浪费时间。传统的家庭防盗监控系统误报率高,无......
  • DPU替代网络可视化专用设备实现业务报文深度处理
    网络可视化中的深度业务处理网络可视化场景中,通常需要将采集过来的数据经过深度业务处理后再交给后端分析系统。这些深度业务处理功能包括:传统的深度业务处理通常由带CPU的框式设备完成,但框式设备成本高、功耗大、扩展不够灵活的种种给客户带来了极大的困扰。DPU算力的池化应用Heli......