R语言可视化及作图6--ggplot2之点图、条形图、盒形图、直方图、线图

Python012

R语言可视化及作图6--ggplot2之点图、条形图、盒形图、直方图、线图,第1张

R语言绘图系列:

标度控制着数据到图形属性的映射,标度将我们的数据转化为视觉上可以感知的东西,比如大小、位置、颜色、形状等。标度也为我们提供了读图时所使用的工具,比如说坐标轴和图例。总的来说,可以称为引导元素。标度函数控制元素的属性,可以理解为图形的遥控器,可以用它来调整画布大小、颜色等等。此前学的shape,color,size等参数和标度函数相比显得不够灵活。

scale_fill_brewer 调色板函数

geom_errorbar()

geom_crossbar()

geom_linerange() 绘制线段

geom_pointrange() 绘制点

pointrange:点画线

首先绘制一张盒形图

在图上显示出观测值

值得注意的是,图上点的多少并不能完全反应原始数据的多少,因为有的点可能因为点过于密集就会被覆盖,看起来是一个点,其实可能是多个点。

因此可以使用geom_jitter函数将不同的点区分开(jitter是震荡散点),width设置如果遇到相同的点,点向左右方平移的距离。alpha设置透明度。

黑色点是离群点

还可以绘制卡槽图

varwidth参数会根据该水平下观测值的个数(n值)改变盒形图的宽度。(这里宽度去的不是观测个数的绝对值,而是平方根,以缩小差距。)

给盒子上色

分组盒形图,用不同颜色区分

画水平的盒形图

使用coord_flip函数(坐标轴翻转函数)

绘制一张直方图

bins可以设置直方图条柱的数目,默认为30。当bins和binwidth(设置条柱宽度)同时设置时,默认以binwidth为准。

新加入变量cut,根据新变量在price水平上进行一个计数

y轴由count变为density,绘制概率密度

注意下面density的写法,前后都要加..

绘制概率密度曲线:geom_density函数

堆栈密度概率曲线

geom_line/geom_path/geom_step

绘制一个简单的线图

绘制点线图,点和线需要分别添加。

如上图,线在点之上,是因为先投射了点,又投射了线。

先投射线,点就出现在了线之上。

线的颜色出现了渐变

geom_smooth函数:绘制拟合曲线

methods还有其他的方法,如glm:广义线性模型;losses:纯粹平滑;gam:广义加性模型等等(lm和glm最常用)

geom_hline绘制水平线,geom_vline绘制垂直线。xintercept和yintercept是截距,slope是斜率。

以下是scatterplot3d、Plot3D、rgl包绘制三维散点图的小示例。

【Iris数据集】

scatterplot3d包绘制三维散点图

Plot3D 包绘制三维散点图

rgl包绘制三维散点图

“作图帮”微信公众号同步更新~

给你一些代码,你慢慢研究:install.packages('ggplot2')library(ggplot2)ggplot(a)+geom_bar(aes(x1,y,fill/col=x1/x2),position='dodge',stat='summary',fun='sum'/'mean')条形图+theme(text = element_text(family='Kai'))ggplot(a)+geom_boxplot(aes(x1,y,col=x1/x2))箱线图ggplot(a)+geom_point(aes(x1,y,col=x1/x2),position=position_jitter(width=0.04))散点图1+geom_point(aes(x1,y,col=x1/x2),stat='summary',fun='sum'/'mean')+散点2+geom_line(aes(x1,y,group=1/x2,col=x1/x2),stat='summary',fun='sum'/'mean')+折线3+geom_errorbar(aes(x=x1,ymin=y-se,ymax=y+se,col=x1/x2),position=position_dodge(0.9),width=0.2)+误差棒4+geom_text(aes(x1,y,label=marker,col=x1/x2),position=position_dodge(0.9)vjust=2或y+2)+显著字母ggplot(a,aes(x1,y,fill/col=x1/x2))+geom_bar(position='dodge',stat='summary',fun='sum'/'mean')+geom_errorbar(aes(ymin=y-se,ymax=y+se),position=position_dodge(0.9),width=0.2)+geom_text(aes(label=marker),position=position_dodge(0.9),vjust=-2)条形图+误差棒+显著字母(坐标写一次即可)ggplot(a,aes(x1,y,col=x1/x2))+geom_point(position=position_jitter(width=0.04),stat='summary',fun='sum'/'mean')+geom_line(aes(group=1/x2),stat='summary',fun='sum'/'mean')+geom_errorbar(aes(ymin=y-se,ymax=y+se),position=position_dodge(0.9),width=0.2)+geom_text(aes(label=marker),position=position_dodge(0.9),vjust=-2)散点图+折线+误差棒+显著字母(坐标写一次即可)+geom_density(aes(y=liqi))密度图(1个数值型)+geom_area(aes(x=tan,y=liqi))区域图(2个数值型)+geom_smooth(aes(x=tan,y=liqi,group/col=chong),formula=y~x,method='lm',se=F)拟合图,分组/线条颜色(2个数值型)+facet_wrap(~riqi,ncol/nrow=2,labeller='label_both/value')分面图,每行或每列分面数,分面标题+xlab('自变量1(单位)')+ylab('因变量(单位)')+scale_fill_discrete(name='自变量2')更改轴和图例名称+coord_cartesian(ylim= c(0,80))限定轴范围(fill=x1/x2,有此即可变色)+scale_fill_manual(values = c('grey70', 'grey50', 'grey30'))改变条形填充颜色(颜色数量=分组数量)(col=x1/x2,有此即可变色)+scale_color_manual(values = c('red', 'orange', 'yellow'))改变颜色(颜色数量=分组数量)