搜索
查看: 746|回复: 0

[R] R数据科学(11)

[复制链接]

14

主题

26

帖子

141

积分

注册会员

Rank: 2

积分
141
发表于 2018-9-12 11:18:13 | 显示全部楼层 |阅读模式
两个连续变量
[AppleScript] 纯文本查看 复制代码
1library(tidyverse)
2library(nycflights13)
3library(gridExtra)
4cor(diamonds$carat,diamonds$price) #计算相关性
5p1=ggplot(data=diamonds,mapping = aes(x=carat,y=price))+geom_point()+geom_smooth(method = lm)+theme_classic()
6p2=ggplot(data=diamonds,mapping = aes(x=carat,y=price))+geom_point()+geom_smooth()+theme_classic()
7grid.arrange(p1,p2)

  
[1] 0.9215913
可以很明显地看出钻石克拉和价格存在一种强相关关系和指数关系


如何使图看着更加清晰?当然我们可以使用之前介绍的透明度的方法,也可以使用前期分面的方法(按cut分)。在前面中,我们讲解了一个分类变量及一个连续变量应该如何更加清晰的表示。geom_histogram() 和geom_ freqpoly()被用于区分一个连续变量并且在一个维度上进行分箱。今天我们主要是介绍在两个维度上进行分箱,使用hexbin保。

[AppleScript] 纯文本查看 复制代码
1library(hexbin)
2p1=ggplot(data=diamonds,mapping = aes(x=carat,y=price))+geom_hex()+theme_classic()
3p2=ggplot(data=diamonds,mapping = aes(x=carat,y=price))+geom_bin2d()+geom_smooth(color= "white")+theme_classic()+scale_fill_gradient(low="green",high="red")
4grid.arrange(p1,p2)
1 a <- c(1,2,3,4,5,6)
2cut_width(a,1)
3cut_number(a,2)

一个是按0照组宽分箱,一个是按照组数目分箱。

练习题:
  • 您可以使用频率多边形,而不是使用箱形图汇总条件分布。使用cut_width()vs 时需要考虑什么cut_number()?这是如何影响的二维分布的可视化carat和price?
[AppleScript] 纯文本查看 复制代码
1ggplot(data=diamonds)+geom_freqpoly(mapping = aes(x=carat,color =cut_number(price,10)))# 不好,线重叠不好分辨
2
3ggplot(data=diamonds)+geom_freqpoly(mapping = aes(x=price,color =cut_number(carat,5)),position = "identity")+theme_classic()
4ggplot(data=diamonds)+geom_histogram(mapping = aes(x=price))+geom_freqpoly(mapping = aes(x=price,color =cut_number(carat,5)),position = "identity")+theme_classic()

2.可视化carat分区,分区price。
[AppleScript] 纯文本查看 复制代码
1ggplot(diamonds, aes(x = cut_number(price, 10), y = carat)) +
2  geom_boxplot() +
3  coord_flip() +
4  xlab("Price")

  • 如何将大钻石的价格分布与小钻石相比较。是意料之中,还是让你感到惊讶?
[Python] 纯文本查看 复制代码
1select_diamonds <- filter(diamonds,carat<1|carat>3)
2ggplot(data=select_diamonds)+geom_bin2d(aes(x=price,y=carat))
3ggplot(data=select_diamonds)+geom_boxplot(aes(x=price,y=carat,group=cut_width(carat,0.5),color=cut_width(carat,0.5)))
  • 根据所学可视化cut、carat、price。
    很有意思,两个连续变量,一个分类变量。
[Python] 纯文本查看 复制代码
1p1=ggplot(data=diamonds)+geom_bar(aes(x=carat,y=price,fill=cut),stat = "identity",inherit.aes = TRUE)+facet_wrap(~cut)+theme_classic()
2p2=ggplot(data=diamonds,aes(x=carat,y=price))+geom_bin2d()+facet_wrap(~cut)+theme_classic()+scale_fill_gradient(low="green",high="red")
3p3=ggplot(diamonds, aes(x = cut_number(carat, 5), y = price, colour = cut)) +geom_boxplot()+theme_classic()
4p4=ggplot(diamonds, aes(colour = cut_number(carat, 5), y = price, x = cut)) +geom_boxplot()+theme_classic()
5#ggplot(data = diamonds) +geom_beeswarm(mapping = aes(x = reorder(cut,price, FUN = median),y = price,color=carat))
6grid.arrange(p1,p2,p3,p4)
这里面有一个思想,就是在两个连续变量和一个分类变量面前,应该把一个连续变量转换为一个分类变量,这样会更好显示。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:能在哪里下载人类染色体全部基因位置信息??谢谢告知
下一篇:9-12 数据科学 8.1-8.2
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-10-14 22:17 , Processed in 0.038887 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.