R数据可视化--ggplot2定位之坐标系详解

坐标系是将两种位置标度结合在一起组成的2维定位系统。ggplot2包含了6种不同的坐标系:

名字描述

cartesian

equal

flip

trans

map

polar

笛卡尔坐标系

同尺度笛卡尔坐标系

翻转的笛卡尔坐标系

变换的笛卡尔坐标系

地图射影

极坐标系

坐标系主要有两大功能:

  • 将2个位置图形属性组合起来在图形中形成2维方位系统。位置图形属性分别被称为x和y,但将它们称作位置1和位置2可能会更适合,因为图形位置属性的名字会随着坐标系的不同而不同。比如极坐标系中将其称作角度和半径。
  • 配合分面,坐标系将绘出坐标轴和面板背景。标度控制着坐标上出现的数值,并将数据映射到图形中的位置,然后通过坐标系将它们绘制出来。

1.笛卡尔坐标系

上表总前四种都是笛卡尔坐标系:coord_cartesian,coord_equal,coord_flip,和coord_trans。coord_cartesian有两个参数xlim和ylim。

> library(ggplot2)
> p <- qplot(disp,wt,data=mtcars) + geom_smooth()
> p

> p + scale_x_continuous(limits=c(325,500))

> p+coord_cartesian(xlim=c(325,500))

左图是完整的数据集,中为x的标度范围设置,右图为x轴坐标系范围设置。标度的范围设置是对数据取子集,然后再重新拟合曲线。坐标系的放缩就是图像的放缩。

> d <- ggplot(diamonds,aes(carat,price)) + stat_bin2d(bins=25,colour="grey70") + theme(legend.position="none")
> d
> d + scale_x_continuous(limits=c(0,2))

> d + coord_cartesian(xlim=c(0,2))
> 

左图是完整的数据集,中间是标度设置x范围,右图是x轴坐标系的范围设置。比较方块的大小,当设定标度范围时,方块的数目还是相同的,只是覆盖了更少数的区域,当设定坐标系范围时,方块数目变少,但它们覆盖的区域没变。

2.坐标轴翻转

假如对y值条件下的x值感兴趣,我们可以使用coord_flip调换x和y轴。

> qplot(displ,cty,data=mpg)+geom_smooth()

> qplot(cty,displ,data=mpg)+geom_smooth()  ##直接对坐标属性进行对换

> qplot(displ,cty,data=mpg)+geom_smooth()+coord_flip()  ##使用翻转函数

 

左图是原散点图相应的平滑曲线。中图互换两个属性变量,平滑曲线拟合的是旋转后的变量。右图coord_flip拟合原始数据,然后再翻转输出结果,就变成是以y为条件变量刻画x的曲线了。

3.变换

coord_trans有x和y两个参数供坐标系使用,它们都是字符串,被称作变换器。坐标系层面的变换发生再统计变换之后,会影响几何形状。我们下面比较下在标度和坐标系下的变换。

> qplot(carat,price,data=diamonds,log="xy")+geom_smooth(method="lm")
> library(scales)
> last_plot()+coord_trans(x = exp_trans(10),y=exp_trans(10))

  

左图为克拉和价格对数变换后的散点图,直线为回归曲线:log(y)=a+bXlog(x)。右图将前面的图变换回去,标度还原,因此线性趋势变成指数形式,y=k X cx 。图形很明显地揭示了克拉大、价格贵地钻石是很稀少地。

4.非笛卡尔坐标系

非笛卡尔坐标系有两种:极坐标和地图投影。利用极坐标可生成饼图玫瑰图等等,但由于角度在小地半径中比在大地半径中更难被感知,因此极坐标地视觉感官性并不佳。

> pie <- ggplot(mtcars,aes(x = factor(1),fill=factor(cyl))) + geom_bar()
> pie    ##堆叠条状图
> pie + coord_polar(theta="y") ##饼图
> pie + coord_polar()  ##牛眼图

  

 

转载于:https://www.cnblogs.com/lizhilei-123/p/6909067.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值