美文网首页
2021-04-24 R数据科学第一章笔记

2021-04-24 R数据科学第一章笔记

作者: 学习生信的小兔子 | 来源:发表于2021-04-24 15:54 被阅读0次

参考:公众号:生信星球

rm(list=ls())
options(stringsAsFactors = F)
library(dplyr)
distinct(mpg,manufacturer)##如何查看每列的非重复值及每个值的重复次数
count(mpg,manufacturer)#显示重复次数
##基础作图
ggplot(mpg)+geom_point(mapping = aes(x=displ,y=hwy))
#颜色 color
ggplot(mpg)+geom_point(mapping = aes(x=displ,y=hwy,color=class))
#尺寸 size
ggplot(mpg)+geom_point(mapping = aes(x=displ,y=hwy,size=class))
#变量按其数值表现是否连续,分为连续变量和离散变量。离散变量指变量值可以按一定顺序一一列举,通常以整数位取值的变量。如职工人数、工厂数、机器台数等。
#透明度和形状
ggplot(mpg)+geom_point(mapping = aes(x=displ,y=hwy,shape=class))
ggplot(mpg)+geom_point(mapping = aes(x=displ,y=hwy,alpha=class))
##手动设置属性
ggplot(mpg)+geom_point(mapping = aes(x=displ,y=hwy),color='red')
#stroke-轮廓
ggplot(mpg)+geom_point(mapping = aes(x=displ,y=hwy,stroke=2),shape=21)
##分面
ggplot(mpg)+
  geom_point(mapping = aes(x=displ,y=hwy))+
  facet_wrap(~class,nrow=2)
##~分面依据必须是离散型变量。
##不想在行或列维度中分面,用.代替变量名
ggplot(mpg)+
  geom_point(mapping = aes(x=displ,y=hwy))+
  facet_wrap(.~class)
##几何对象
#也就是图的不同类型,如点图、折线图、直方图等。

##分组
ggplot(data = mpg) +
  geom_smooth(mapping = aes(x = displ, y = hwy, group = drv))
#分组-线型
ggplot(data = mpg) +
  geom_smooth(mapping = aes(x = displ, y = hwy, linetype = drv))
##颜色-分组
ggplot(data = mpg) +
  geom_smooth(mapping = aes(x = displ, y = hwy, color= drv),
              show.legend = F)#show.legend 不显示图例
##同一张图显示多个几何对象--局部映射和全局映射
#有多个几何对象时,映射语句要重复多次,又丑又麻烦。
ggplot(data = mpg) + 
  geom_point(mapping = aes(x = displ, y = hwy)) +
  geom_smooth(mapping = aes(x = displ, y = hwy))
#全局映射  对所有图层生效
ggplot(mpg,mapping = aes(x=displ,y=hwy))+
  geom_point()+
  geom_smooth()
#局部映射与全局映射冲突时,服从局部映射。局部映射与全局映射冲突时,服从局部映射。
library(dplyr) 
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + 
  geom_point(mapping = aes(color = class)) + 
  geom_smooth(data = filter(mpg, class == "subcompact"), se = FALSE)
##统计变换
###局部映射与全局映射冲突时,服从局部映射。

#
##统计变换:绘图时用来计算新数据的算法叫做统计变换stat
#geom_bar做出的图纵坐标为count,是计算的新数据。
#geom_bar的默认统计变换是stat_count,stat_count会计算出两个新变量-count(计数)和prop(proportions,比例)。
#每个几何对象函数都有一个默认的统计变换,每个统计变换函数都又一个默认的几何对象。
#用几何对象函数geom_bar作直方图,默认统计变换是stat_count,
ggplot(diamonds)+
  geom_bar(mapping = aes(x=cut))
#用统计变换函数stat_count做计数统计图,默认几何对象是直方图。
ggplot(diamonds)+
  stat_count(mapping = aes(x=cut))
#上述两个代码效果一直

#覆盖默认的统计变换
#直方图默认的统计变换是stat_count,也就是统计计数。当需要直接用原表格的数据作图时就会需要覆盖默认的。

demo <- tribble(
  ~cut,         ~freq,
  "Fair",       1610,
  "Good",       4906,
  "Very Good",  12082,
  "Premium",    13791,
  "Ideal",      21551
) #新建表格并赋值给demo

ggplot(data = demo) +
  geom_bar(mapping = aes(x = cut, y = freq), stat = "identity") #覆盖默认的统计变换,使用identity。
##覆盖从统计变换生成变量到图形属性的默认映射
#直方图默认的y轴是x轴的计数。此例子中x轴是是五种cut(切割质量),直方图自动统计了这五种质量的钻石的统计计数,当你不想使用计数,而是想显示各质量等级所占比例的时候就需要用到prop。
ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, y = ..prop.., group = 1))
#stat_summary
ggplot(data = diamonds) + 
  stat_summary(
    mapping = aes(x = cut, y = depth),
    fun.ymin = min,
    fun.ymax = max,
    fun.y = median
  )
#stat_summary的默认几何图形是geom_pointrange
#stat_summary的默认几何图形是geom_pointrange,而这个geom_pointrange默认的统计变换却是identity,因此要用几何对象函数重复这个图形,则需要指定stat_summary。
ggplot(data = diamonds) +
  geom_pointrange(
    mapping = aes(x = cut, y = depth),
    stat = "summary",
    fun.min = min,
    fun.max = max,
    fun = median
  )
##位置调整-position
#在直方图中,颜色映射是由color和fill之分的,表示边框和填充。如果要设置无填充(也就是透明),则fill=NA。NA在数据框里表示空值。
#直方图之堆叠式-fill
#堆叠式就是在基础条形图上添加第三个变量,将这个变量映射给fill,就会在每个条形中分出不同颜色且不同比例的矩形。
ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut,fill=clarity))
#除了映射的方式以外,position参数设置位置调整功能。position="fill"也可以设置,但这样设置的每组堆叠条形具有相同的高度。
ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut,fill=clarity),position = 'fill')
#直方图之对象直接显示-identity
ggplot(diamonds,mapping = aes(x=cut,fill=clarity))+
  geom_bar(alpha=1/5,position = 'identity')
ggplot(diamonds,mapping = aes(x=cut,color=clarity))+
  geom_bar(fill=NA,position = 'identity')
#直方图之并列式-dodge
ggplot(data = diamonds) + 
  geom_bar(mapping = aes(x = cut, fill = clarity), position = "dodge")
#散点图之扰动-jitter
ggplot(mpg,mapping = aes(x=displ,y=hwy))+
  geom_jitter()
#或者
ggplot(mpg)+
  geom_point(mapping = aes(x=displ,y=hwy),
       position='jitter'
       )
#坐标系
#coord_flip翻转坐标系
ggplot(data = mpg, mapping = aes(x = class, y = hwy)) + 
  geom_boxplot() +
  coord_flip()
#coord_quickmap 为地图设置长宽比
library(maps)
#如果报错则:install.packages("maps")
#library(maps)
nz <- map_data("nz")

ggplot(nz, aes(long, lat, group = group)) +
  geom_polygon(fill = "white", colour = "black")

ggplot(nz, aes(long, lat, group = group)) +
  geom_polygon(fill = "white", colour = "black") +
  coord_quickmap()
##coord_polar 极坐标系
bar <- ggplot(data = diamonds) + 
  geom_bar(
    mapping = aes(x = cut, fill = cut), 
    show.legend = FALSE,
    width = 1
  ) + 
  theme(aspect.ratio = 1) +
  labs(x = NULL, y = NULL)
bar + coord_flip()
bar + coord_polar()

相关文章

网友评论

      本文标题:2021-04-24 R数据科学第一章笔记

      本文链接:https://www.haomeiwen.com/subject/bohlrltx.html