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语言。
ggplot01:R语言坐标轴离散、连续与图例离散连续的区分相关推荐
- R语言可视化包ggplot2改变图例(legend)的标题(title)实战
R语言可视化包ggplot2改变图例(legend)的标题(title)实战 目录 R语言可视化包ggplot2改变图例(legend)的标题(title)实战
- R语言ggplot2可视化将颜色图例和形状的图例组合成综合图例实战
R语言ggplot2可视化将颜色图例和形状的图例组合成综合图例实战 目录 R语言ggplot2可视化将颜色图例和形状的图例组合成综合图例实战
- R语言ggplot2可视化移除图例中的a字符实战
R语言ggplot2可视化移除图例中的a字符实战 目录 R语言ggplot2可视化移除图例中的a字符实战
- R语言可视化包ggplot2改变图例(legend)元素的大小实战:包含图例中标题字体、文本字体、标识模块(key)的大小
R语言可视化包ggplot2改变图例(legend)元素的大小实战:包含图例中标题字体.文本字体.标识模块(key)的大小 目录
- R语言可视化包ggplot2改变图例(legend)标签实战
R语言可视化包ggplot2改变图例(legend)标签实战 目录 R语言可视化包ggplot2改变图例(legend)的标签实战 #ggplot2图例标签改变语法
- R语言-坐标轴画法要旨
在R语言中绘制坐标轴时,如何将坐标轴的刻度画在图内呢? 下面有一个完整的例子: #画图测试 aixs.test<-function(){ x<-rnorm(7) #prin ...
- 『R语言Python』针对多分类离散型变量的特征工程
在训练模型之前,我们常常需要根据不同变量的基本情况进行相应且合理的特征工程,通过阅读文献和自行尝试,我针对多分类变量的特征工程做出了一些总结 数据来源(adult数据集):https://archiv ...
- R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩、离散色彩、梯度色彩)实战(density plot)
R语言使用ggplot2包使用geom_density()函数绘制密度图(连续色彩.离散色彩.梯度色彩)实战(density plot) 目录 R语言使用ggplot2包使用geom_density( ...
- R语言ggplot2可视化:自定义设置连续变量图例(legend)宽度(width)、自定义设置连续变量图例位置(position)、自定义设置连续变量图例连续渐变
R语言ggplot2可视化:自定义设置连续变量图例(legend)宽度(width).自定义设置连续变量图例位置(position).自定义设置连续变量图例连续渐变 #初始示例(图例互相分离.图例细线 ...
最新文章
- linux驱动:音频驱动(一)ALSA
- 前沿技术 | 自动机器学习综述
- 如何实现分享网站文章到微信朋友圈时显示指定缩略图或LOGO
- JSP request response session
- 研究综述 | 知识图谱划分算法研究综述
- Python模块之optparse
- Mysql权限控制 - 允许用户远程连接
- android scrollow嵌套listview,excel 中IDEX和MATCH函数嵌套应用.doc
- 基于区块链Baas平台的跨链实践
- 2017年个人目标及计划
- 内网渗透学习04——域内横向移动
- Manim文档及源码笔记-CE文档-主题化指南3渲染文本和公式
- 庄周带你练习数据库语句复习常备之【JavaWeb阶段学习】
- 基于HTML+JavaScript+CSS计算机实验室预约管理系统网页设计 文档+html源码
- 浅析即时通讯开发P2P技术如何降低实时视频直播带宽
- C/C++ 中的宏 (macros) 与宏展开的可视化显示
- 电脑网络重置后的出现的问题以及解决办法
- ARM使用术语清除(flush)和清理(clean)表示对cache的两种基本操作
- 聚类分析matlab
- 灾备机房深信服超融合IP网段调整记录2021-1-28