赞
踩
一、准备工作
(1)下载包:install.packages(tidyverse)--注意选择国内源
(2)载入包:library(tidyverse)
(3)了解一下本次实验所使用的几个数据包
可以使用str()函数查看data_frame的相关结构
1、diamond钻石包
carat | numeric类型:数值 |
cut | factor类型(因子类型):fair、good等5个 |
color | factor类型(因子类型):D、E、F等7个 |
clarity | factor类型(因子类型):I1、SI2等8个 |
depth | numeric类型:数值 |
table | numeric类型:数值 |
price | int类型:整数 |
2、mtcars包
mpg | numeric类型 |
cyl | numeric类型,只有4、6、8三种 |
disp | numeric类型 |
hp | numeric类型 |
drat | numeric类型 |
wt | numeric类型 |
qsec | numeric类型 |
vs | numeric类型,只有0和1 |
am | numeric类型,只有0和1 |
gear | numeric类型,只有4,3,5 |
carb | numeric类型,只有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()类似,不过使用色块来表示
这个地方没搞懂--学一下
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。