R语言绘图

您所在的位置:网站首页 ggplot2教程表格 R语言绘图

R语言绘图

2024-07-14 05:49| 来源: 网络整理| 查看: 265

R 有几种用于制作图形的系统,但 ggplot2 是最优雅和最通用的系统之一。与大多数其他图形包不同,ggplot2 具有基于图形语法的底层语法,它允许您通过组合独立组件来组合图形。如果想要更加了解ggplot2,请阅读ggplot2: Elegant Graphics for Data Analysis,可以从https://ggplot2-book.org/getting-started.html学习本书

介绍

所有的图都由数据data,想要可视化的信息,映射mapping(即数据变量如何映射到美学属性的描述)组成

有五个映射组件: 以下我们详细描述各组件添加的参数

1.图层(layers)是几何元素和统计变换的集合。几何对象,简称geoms,代表你在图中实际看到的东西:点、线、多边形等等。 统计转换,简称stats,总结数据:例如,装箱和计数观察,以创建一个直方图,或拟合一个线性模型。

2.Scales将数据空间中的值映射到美学空间中的值。这包括颜色、形状和大小的使用。Scale还绘制图例和轴,这使得从图中读取原始数据值成为可能(反向映射)。

3.坐标(coords)或坐标系统描述如何将数据坐标映射到图形的平面。它还提供了轴和网格线来帮助读取图形。我们通常使用笛卡尔坐标系,但也可以使用其他一些坐标系,包括极坐标和地图投影。

4.刻面(facet)指定如何拆分数据子集并将其显示为小倍数。这也被称为条件反射或网格/格子。

5.theme控制更精细的显示点,如字体大小和背景颜色。

ggplot2的参数(分别从图层,scale,坐标,facet和theme介绍)

ggplot2有许多参数,可根据需求自行选取,具体参数详情可见https://ggplot2.tidyverse.org/reference/index.html

基础绘图:由ggplot(data,aes(x,y))+geom_开始,至少包含这三个组件,可以通过"+"不断的添加layers, scales, coords和facets。

(1)图层(layers)

Geoms:几何对象,通常,您将使用geom_函数创建层,以下为常用的图形: geom_bar() :直方图,条形图 geom_boxplot():box图 geom_density():平滑密度估计曲线 geom_dotplot():点图 geom_point():点图 geom_violin():小提琴图

> library(ggplot2) > mpg # A tibble: 234 x 11 manufacturer model displ year cyl trans drv cty hwy fl class 1 audi a4 1.8 1999 4 auto(l… f 18 29 p comp… 2 audi a4 1.8 1999 4 manual… f 21 29 p comp… 3 audi a4 2 2008 4 manual… f 20 31 p comp… 4 audi a4 2 2008 4 auto(a… f 21 30 p comp… 5 audi a4 2.8 1999 6 auto(l… f 16 26 p comp… 6 audi a4 2.8 1999 6 manual… f 18 26 p comp… 7 audi a4 3.1 2008 6 auto(a… f 18 27 p comp… 8 audi a4 quat… 1.8 1999 4 manual… 4 18 26 p comp… 9 audi a4 quat… 1.8 1999 4 auto(l… 4 16 25 p comp… 10 audi a4 quat… 2 2008 4 manual… 4 20 28 p comp… # … with 224 more rows > ggplot(mpg, aes(x = displ, y = hwy)) + geom_point() #点图 1.jpg

aes(),颜色、大小、形状和其他审美属性 要向绘图添加其他变量,我们可以使用其他美学,如颜色、形状和大小。 按照属性定义 它们的工作方式与x和y相同,aes(): aes(displ, hwy, colour = class) #按照某个属性着色 aes(displ, hwy, shape = drv) #按照某个属性定义 aes(displ, hwy, size = cyl) #按照某个属性定义

> ggplot(mpg, aes(x = displ, y = hwy,colour = class)) + geom_point() 2.jpg

整体自定义 geom_xxx(colour =自定义颜色) geom_xxx(shape=形状编号) geom_xxx(size =编号大小定义 0-10)

注意根据需求按照aes()还是geom进行添加属性

以下为R语言中各shape形状编号

6.jpg > ggplot(mpg, aes(displ, hwy)) + geom_point(colour = "blue") #把所有点定义为blue 3.jpg > ggplot(mpg, aes(displ, hwy,colour=hwy)) + geom_point(shape=3) 7.jpg (2)scale

scale控制如何将数据值转换为视觉属性的细节。 labs()和lims()是对标签和限制进行最常见调整。

labs() ,主要对图形进行调整,注释等 labs()括号内参数:title主标题,subtitle副标题,caption右下角描述,tag左上角 xlab() ,x轴命名 ylab() ,y轴命名 ggtitle() ,标题

> ggplot(mpg, aes(displ, hwy)) + geom_point()+ labs(title="TILTLE",subtitle="sub",caption="the caption",tag="A")+ xlab("XXX")+ #横坐标命名 ylab("YYY") #纵坐标命名 4.jpg

lims() xlim(), xlim(a,b) 限制坐标(a,b) ylim() , ylim(a,b) 限制坐标(a,b)

>ggplot(mpg, aes(displ, hwy)) + geom_point()+ labs(title="TILTLE",subtitle="sub",caption="the caption",tag="A")+ xlab("XXX")+ #横坐标命名 ylab("YYY")+ #纵坐标命名 xlim(0,8)+ ylim(0,60) 5.jpg

scale_alpha() 透明度尺度 scale_shape() ,搭配aes(shape=某个属性)使用 参数:name ,solid =T/F是否填充

> ggplot(mpg, aes(displ, hwy,shape=drv,colour=drv)) + geom_point()+ labs(title="TILTLE",subtitle="sub",caption="the caption",tag="A")+ xlab("XXX")+ #横坐标命名 ylab("YYY")+ #纵坐标命名 xlim(0,8)+ ylim(0,60)+ scale_shape(name="shape",solid = TRUE) 8.jpg

scale_size() 搭配aes(size=某个属性)使用 参数:name,range =c(0, 10)

> ggplot(mpg, aes(displ,hwy,size=hwy,colour=drv)) + geom_point()+ labs(title="TILTLE",subtitle="sub",caption="the caption",tag="A")+ xlab("XXX")+ #横坐标命名 ylab("YYY")+ #纵坐标命名 xlim(0,8)+ ylim(0,60)+ scale_size(name="SIZE",range=c(0,3)) 9.jpg 在ggplot2中有几种参数设置颜色:

1.适用于发散和定性的数据

a.scale_colour_brewer(),scale_colour_brewer(palette =" "),scale_colour_brewer(palette ="Green ")

palette来自RcolorBrewer包,所有面板:

10.jpg > ggplot(mpg, aes(displ, hwy,colour=drv))+ ##drv是一种定性尺度 geom_point()+ scale_colour_brewer(palette = "Set1") 11.jpg

b.scale_colour_manual() scale_colour_manual(values=c( )) 可以自定义颜色,常用的参数 values可直接定义颜色,但是建议使用命名向量,例如 values=c("8" = "red", "4" = "blue", "6" = "darkgreen", "10" = "orange")

PS:注意在aes(colour=factor()),一定要把因素转换为factor型,否则无效

ggplot(mpg, aes(displ,hwy,colour = factor(drv)))+ geom_point()+ scale_colour_manual(values = c("red", "blue", "green")) 17.jpg

2.适用于连续的值,渐变颜色 a.scale_colour_gradient() scale_colour_gradient (low =" ",high=" "),根据值大小定义颜色,创建两个颜色梯度(低-高),

> ggplot(mpg, aes(displ, hwy,colour=displ))+ geom_point()+ scale_colour_gradient(low = "green", high = "black") 14.jpg

b.scale_colour_gradient2() scale_colour_gradient2(low = " ",mid = " ",high = " ")创建一个发散的颜色梯度(低-中-高)

> df ggplot(df, aes(x, y,colour = z)) + geom_point()+ scale_colour_gradient2(low = "green",,mid = "white",high = "black") 15.jpg

c.scale_colour_gradientn() 创建一个n色渐变,scale_colour_gradientn(colours =许多R语言中的颜色面板),

> ggplot(mpg, aes(displ, hwy,colour=displ))+ ##displ是连续的值 geom_point()+ scale_colour_gradientn(colours = terrain.colors(10)) 13.jpg 3.coords坐标

默认坐标系是笛卡尔coord_cartesian() 一般不会修改

4.facet,把不同的因素分成不同的面,每个显示不同的数据子集

facet_grid(),在网格中布置面板 facet_grid(rows = vars() ) ;cols或rows = vars(因素),图形按列或行分割

ggplot(mpg, aes(displ, cty)) + geom_point()+ facet_grid(rows = vars(drv)) 18.jpg

facet_wrap() facet_wrap(vars( ), ncol =n) , ncol或者nrow,分为多少行多少列

> ggplot(mpg, aes(displ, cty)) + geom_point()+ facet_wrap(vars(drv), ncol =2) 19.jpg 5.theme

theme_bw(),可以覆盖所有主题,背景变为白色,我们在文章中所用的图片大都需要该背景。 或者用theme_classic(),同时去除了网格线

> ggplot(mpg, aes(displ, cty)) + geom_point()+ theme_bw() 20.jpg > ggplot(mpg, aes(displ, cty)) + geom_point()+ theme_classic() 21.jpg

theme(),修改主题的组件,里面涉及多个参数,根据需求调整

常见参数: legend.position,图例的位置,包括 "left" 左, "right" 右, "bottom" 下, "top" 上和"none",不显示

ggplot(mpg, aes(displ, cty,colour= factor(drv))) + geom_point()+ theme_classic()+ theme(legend.position = "left") 22.jpg


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3