当前位置:   article > 正文

R语言从入门到入土--一文带你解锁ggplot2绘图大法_geom_line

geom_line

一、准备工作

(1)下载包:install.packages(tidyverse)--注意选择国内源

(2)载入包:library(tidyverse)

(3)了解一下本次实验所使用的几个数据包

可以使用str()函数查看data_frame的相关结构

1、diamond钻石包

caratnumeric类型:数值
cutfactor类型(因子类型):fair、good等5个
colorfactor类型(因子类型):D、E、F等7个
clarityfactor类型(因子类型):I1、SI2等8个
depthnumeric类型:数值
tablenumeric类型:数值
priceint类型:整数

 2、mtcars包

mpgnumeric类型
cylnumeric类型,只有4、6、8三种
dispnumeric类型
hpnumeric类型
dratnumeric类型
wtnumeric类型
qsecnumeric类型
vsnumeric类型,只有0和1
amnumeric类型,只有0和1
gearnumeric类型,只有4,3,5
carbnumeric类型,只有1,2,3,4,6,8

 看取值范围可以使用unique(mtcars$列名)

3、mpg包

二、基本公式

ggplot+geom_*()+分面函数+修饰函数

ggplot():将所需要的数据放在里面

geom_*():选择不同的公式,画出不同类型的图

三、ggplot()讲解

1、用来指定所需要使用的数据,尽量将所有的数据信息放在ggplot()函数里面

2、函数构造ggplot(data=mydata,mapping=aes(x=..,y=..,.....))

(1)两个基本参数,data用来表明你所用的data_frame的名称;mapping里面的aes里面表示坐标轴是什么,一般要按照后面的geom_*来分情况讨论

四、geom_*()分类讲解

4.1 geom_point()

1、用于绘制点图

2、参数包括:点形状shape、点颜色color、尺寸size

3、需要指定横坐标和纵坐标

例:

ggplot(data=mtcars,mapping=aes(x=gear,y=wt))+geom_point(color="blue",size=2,fill="blue",alpha=0.6)

注意:当绘制点图的时候,geom_point()会将坐标值进行舍入取整,会出现多个点彼此重叠的情况,导致在图上看到的点少于实际上的点,称为过绘制。解决方法,加一个参数position="jitter",在绘制大量点的点图时可以使用。

 下面两图是没加position="jitter"参数和加了参数的不同,我们可以看到没加的更加规整一些

 

 4.2 geom_line

1、用于绘制线图

2、参数包括color(颜色)、linetype(类型)、size(粗细)等

3、需要指定横坐标和纵坐标

ggplot(data=mpg,mapping=aes(x=cty,y=hwy))+geom_point(color="blue",size=2,fill="blue",alpha=0.6,position="jitter")+geom_line(color="red",size=0.5)

 4.3 geom_bar()

1、用于绘制条形图

2、只需要指定横轴坐标,必须是一个离散值(因子类型或者字符串类型)

3、纵坐标的值会按照横坐标来计数

4、常用的参数包括:width(条形图粗细)、color(边框颜色)、fill(填充颜色)、alpha(透明度)、weight、stat(后面说)

5、+coord_flip可以将竖着换成横的

ggplot(data=diamonds,mapping=aes(x=cut))+geom_bar(fill="blue",alpha=0.5,color="white")

 如果是numeric类型,虽然是离散的,但是横坐标不会删除掉中间的数字

 可以先将其转换为因子类型后再写,

 

6、参数weight,上面的geom_bar函数的纵坐标一开始只能是count计数,但是如果我们使用了weight参数,就可以按照x分成几个条状后,计算weight里面的数值的和

ggplot(data=diamonds,mapping=aes(x=cut,weight=carat))+geom_bar(fill="blue",alpha=0.5,color="red")

 计算了不同cut类型下carat的总和

 7、改变横轴上面条形的顺序

myfactor<-reorder(x,X,FUN=。。)其中,x参数是一个离散型的向量,X是与x等长的一个变量,按照fun(X)对x进行排序即可

8、stat参数

加上stat=“identity”的参数,类似于weight的功能

ggplot(data=mtcars,mapping=aes(x=factor(cyl),y=wt))+geom_bar(color="red",fill="blue",alpha=0.5,stat="identity")

9、在geom_bar()当中,对每个条形会计算出两个值count和prop,这两个中间值也是可以拿来用的,可以当作横坐标或者纵坐标。使用方式

·在这两个值前面加上两个点..count..和..prop..

·在这两个值用的时候用stat()包起来

如下:

ggplot(data=diamonds,mapping=aes(x=cut,y=stat(count/max(count))))+geom_bar(color="red",fill="blue",alpha=0.3)

 4.4 geom_histogram()

1、只需要指定横轴变量,纵轴会根据横轴变量的值统计出来

2、可以使用离散型变量或者连续型变量作为横坐标

3、常用参数有:color、fill、alpha、weight、stat、bins等

4、histogram会自动将横轴分成多个小区间,统计每个小区间的数值

5、如果要将区间划分地更细,可以使用参数bins,或者binwidth,但是它们只对连续型变量有效

ggplot(data=diamonds,mapping=aes(x=carat))+geom_histogram(width=0.5,color="blue",fill="purple",alpha=0.5,bins=50)

 6、同样的,histogram也会有四个中间值可以用,count、density、ncount(相对比例)、ndensity(相对密度),用法同上面的count和prop是一样的

7、注意stat="count"这个参数,什么时候是必须加的,当且仅当你的x坐标是一个factor、character等离散类型的时候,就必须要加这个参数(包括使用weight),反推连续型、num就不需要加这个参数。但是如果使用y坐标的话,不管x坐标是什么,都应该加上的是stat=“identity”

梳理归纳一下,这个stat="identity"和这个stat="count"到底什么时候加,非常迷糊

stat="identity"要加有y的时候,且y值不是..count../..count../..density../..ndensity..
stat="count"要加没有y的时候,且x是离散型,即为factor或character;还有一种是有weight的,离散型要加
stat="identity"不加有y的时候,且y值是..count..等等,这时候什么都不要加
stat="count"不加没有y的时候,且x不是离散型,这时候什么都不要加

总的来说,首先先分是不是离散型,如果不是离散型就不需要考虑stat=“count”这种情况,再看y还是weight,weight不管,只看y,有y就是stat="identity"。

4.5 geom_freqpoly()----待确认

1、geom_freqpoly和geom_histogram类似,不过前面的只画折线

plus:但是我发现一个点,你没办法使用离散值作为x坐标,你只能用非离散值做x坐标,而且不是非要有stat=“count”

plus:还有一个点,geom_freqpoly不能用在有y值和weight值的里面

4.6 geom_boxplot

1、箱型图,横坐标只能是离散型。

2、同时需要横坐标和纵坐标

3、如果要使用连续变量作为横坐标,需要手动进行分组

使用group=cut_width(变量名称,距离)

ggplot(data=diamonds,mapping=aes(x=carat,y=depth,group=cut_width(carat,0.1)))+geom_boxplot(color="blue")

怎么用的呢,就是首先写x横坐标,再写y纵坐标,然后再用group参数,把x横坐标cut_width()进行切分,按照一定的标度

4.7 geom_smooth()

1、这个函数是用来拟合的,来添加一系列的平滑曲线和置信区间

2、参数如下

method使用的平滑函数,lm(线型)、glm(广义线性)、smooth、rlm(健壮线型)
formula平滑函数中使用的公式,例如y~x,y~log(x),y~poly(x,n)【表示的是x的n次多项式】
se是否绘制置信区间
level置信区间的水平,默认为95%
fullrange拟定是否应当涵盖全图。默认值为FALSE
linetype线型
size线的粗细
color线的颜色
fill填充区的颜色
alpha色彩饱和度(alpha=0表示完全透明, alpha=1表示完全不透明)

绘制:如果你不先使用geom_point()的话,最后的结果里面只有一个区间和一条线

4.8 geom_density()

1、用来绘制密度函数,可以叠加在密度直方图上面使用

2、只需要一个x坐标

4.9 geom_count()

1、绘制两个离散变量的各种组合出现的次数,用点的大小表示

ggplot(data=diamonds,mapping=aes(x=color,y=cut))+geom_count(color="blue",alpha=0.3)

4.9 geom_tile() 

1、功能与geom_count()类似,不过使用色块来表示

 这个地方没搞懂--学一下

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号