R可视化系列——标度(一)

今天学习ggplot2中的标度。在ggplot2输出可视化图形时,图层大致包括几何对象(geom),统计变换(stat)以及标度(scale)三个大主体。
标度大致可以分为四种:
(1)位置标度:构建坐标轴
(2)颜色标度:将变量映射到颜色中(体现在图例里)
(3)  手动标度:符号大小,线条类型,形状,颜色等,可以创建相应的图例
(4)同一型标度:直接将变量值作为图形属性(少用)

标度命名是规范化的,以scale_开头,下接图形属性的名称,最后以标度名称结尾。例:scale_colour_hue(离散型数据的颜色标度)。

图形属性 离散型 连续型
colour(颜色),fill(填充色) brewer,grey,hue,identity,mnual gradient,gradient2,gradientn
x,y(坐标轴) discrete continuous,date,trans(例:log10)
shape(形状) **shape**identity,manual  
linetype(线条) linetype,identity,manual  
size(大小) identity,manual size
标度的通用参数包括:name,limits(定义坐标轴域),breaks,lables。
刚开始学习,感觉标度很抽象,今天先看下如何修改标度参数来实现控制图例以及修改坐标轴的目的。
一、通用参数如下:
(1)name
可以用来设置坐标轴或者图例上的文字标签,如scale_x_continuous可以用来修改连续性变量x轴,这些标签经常需要调用,故而使用xlab(),ylab(),labs()进行操作,减少工作量。
library(ggplot2)
p<-ggplot(mpg,aes(cty,hwy,colour=displ))+geom_point()
p ###第一张图,输出默认###
p+xlab("city mpg")+ylab("highway mpg")
###第二张图,修改x,y轴名称###
p+labs(x='city mpg',colour='displ mpg')
###第三张图,修改x轴名称和图例名称###
                            R可视化系列——标度(一)

(2) limits&break&lables

limits用于控制坐标轴的定义域。break用于控制坐标轴上需要显示哪几个值(同样适用于图例)

library(ggplot2)
p<-ggplot(mtcars,aes(cyl,wt,colour=cyl))+geom_point()
p+scale_x_continuous(limits=c(5.5,6.5))
###第1张图,输出cyl取值在5.5-6.5之间的点###
p+scale_x_continuous(breaks=c(5.5,6.5))
###第2张图,输出cyl的刻度仅有两个标记(5.5,6.5)###
p<-ggplot(mtcars,aes(wt,cyl,colour=cyl))+geom_point()
p+scale_colour_continuous(limits=c(5.5,6.5))
###第3张图,图例仅有cyl取值在5.5-6.5之间的点才有颜色###
p+scale_colour_continuous(breaks=c(5.5,6.5))
###第4张图,图例仅有cyl5.5和6.5有刻度标记###

                 R可视化系列——标度(一)

二、位置标度

任何图形都拥有两个位置标度,包括x与y。

(1)xlim()与ylim()函数用来修改坐标轴范围,是scale_x_continuous()以及scale_y_continuous()的缩写。

xlim(5,10)代表x轴范围为5-10

xlim("0","5","10")代表x轴的离散标度为0,5和10

xlim(as.Data(c("2008-05-01","2008-09-08")))代表从2008年5月1日到9月8日的日期型标度。

(2)统计变换。如下图,第二幅图的坐标轴范围仍然为原始数据,故而错误!

qplot(log10(carat),log10(price),data=diamonds)
##下图左
qplot(carat,price,data=diamonds) + scale_x_log10() + scale_y_log10()
##下图右

                                           R可视化系列——标度(一)