ggplot01:R语言坐标轴离散、连续与图例离散连续的区分

本文讲解我在R语言绘图过程中对离散性、连续性的困惑以及应该如何理解。

写在前面:discrete离散的 continuous连续的

系统学习ggplor2,可以选择的是练数成金的课程,供参考

本节涉及的是ggplot2的scales(标度),是从domain(数据空间)到range(装饰属性空间)的一个函数。一些概念如下(和本文关系不大)

  • Domain可以是一组数据(离散情形)或实数轴上的区间(连续情形)
  • Range同样可以是离散或连续的
  • Transformation(只对连续情形)
  • Training
  • mapping

坐标轴的数类型据为numerical的时候,绘图时自动当做连续型处理,其实也很好理解,绘图的时候不只是画出变量里含有的值,应该体现数据的大小关系,即本应该就当做连续型数据。而对于分组图例的时候,若当做离散型,这时数据只是起到分类的作用,和其大小无关;若当做连续型,能看到过渡变化情况。

1. 分组图例:连续vs离散

library(ggplot2)
qplot(displ, hwy, data = mpg, colour = cyl)  #生成连续型图例(下图左图)
qplot(displ, hwy, data = mpg, colour = factor(cyl))  #生成离散型颜色分组及图例(右图)

   

 

注意二者的区别:没加factor的颜色不是离散的,是从4到8均匀过渡;加了factor的则是离散的颜色值(此处更好)。factor是转换为因子结构的意思。

2. 坐标轴:连续vs离散

library(ggplot2)
p<-qplot(cty,hwy,data=mpg)
p
p+aes(x=drv) + scale_x_discrete() # x轴由连续变量替换为离散变量

当替换的变量离散性连续性不同的时候,需要添加scale_x_discrete()或者scale_x_continuous。绘图时,坐标轴变量只要为数值型且需要反映其值大小的时候通常为连续型,且只要是numerical,R默认将其当做continuous,我们不需要对此再加设置。

3. 针对scale离散或者连续的用法: scale_第一列_第二(三)列

   

如:scale_colour_hue  #追对离散图例colour分组

       scale_colour_gradient #针对连续图例colour分组

例1:scale_colour_hue

p <- qplot(sleep_total, sleep_cycle, data = msleep, colour = vore)
p #下面左图
p + scale_colour_hue() # 默认scale,没有任何变化
# Adjust parameters of the default, here changing the appearance
# of the legend
p + scale_colour_hue("What does\nit eat?",	   #图例标题:\n换行
breaks = c("herbi", "carni", "omni", NA),
labels = c("plants", "meat", "both", "don’t know"))   #下面右图

 

 

例2:xlab(),ylab() 和 labs()

p <- qplot(cty, hwy, data = mpg, colour = displ)
p
p + scale_x_continuous("City mpg") #x为连续的,设横坐标标题(这句不管他,和下面一样)
p + xlab("City mpg") #横坐标标题
p + ylab("Highway mpg") #纵坐标标题
p + labs(x = "City mpg", y = "Highway",colour = "Displacement") #这句最好用
#设置横坐标、纵坐标、colour分组图例处的标题
 
p + xlab(expression(frac(miles, gallon))) #frac是分数的意思
#最后这句里面是在标题出放入公式,公式具体参见plotmath(R中输入:?plotmach即可)

公式具体参见plotmath(R中输入:?plotmach即可)

例3:Breaks和labels

p <- qplot(cyl, wt, data = mtcars)
p

p + scale_x_continuous(breaks = c(5.5, 6.5)) 
#刻度文字只显示x轴上5.5-6.5的部分,但是不改变原来的数据范围。
p + scale_x_continuous(limits = c(5.5, 6.5))
#限定了x轴范围,范围外的不显示

     

p <- qplot(wt, cyl, data = mtcars, colour = cyl) #连续型分组图例
p

p + scale_colour_gradient(breaks = c(5.5, 6.5)) #设置图例的刻度文字范围

p + scale_colour_gradient(limits = c(5.5, 6.5)) #超出limits的显示为灰色

 

至此,应该能理解离散和连续的使用了,以及文中的那个表格要理解构成和使用,祝学习顺利!欢迎交流R语言。

 

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值