关于ggplot2 x轴刻度画出的图怎么改坐标刻度的方向

ggplot2绘图入门系列之三:位置调整与条形图 | R blogs / lang
Post navigation
Recent PostsR语言(28)
R语言-可视化(7)
ggplot2 2.0 标度(坐标轴,图例修改)
对于坐标轴,经常需要调整的其标签,即坐标轴上的名字,坐标轴范围,图例等等。以上问题的修改,都可以通过用图层的方式来进行修改,以为我的理解,图层大致分为几何对象(geom),统计变换(stats),标度(scale)。坐标轴,图例修改需理解其标度,再调整其参数,便能实现坐标轴,图例上的修改。
标度命名是规范化的,以 scale_ 开头,下接图形属性的名称(见表格(注:无通用参数)),最后以标度名称结尾。例:scale_colour_hue(离散型数据的颜色标度),对标度名称的作用解释,看非通用参数。
colour,fill
brewer,grey,hue,identity,mnual
gradient,gradient2,gradientn
x,y(坐标轴)
continuous,date,trans(例:log10)
**shape**identity,manual
linetype,identity,manual
identity,manual
name : 修改坐标轴和图例上的标签。用标度表示 scale_x_continuous(name=”“),修改y轴标签,修改图例标签,写法同上。但因需经常修改,表达麻烦所以有专门简化修改函数:xlab(), ylab(), labs().
p &- ggplot(mpg) + geom_point(aes(x = cty, y = hwy, colour = displ))
#####坐标轴标签修改######
p + scale_x_continuous("City mpg")
##等价于下面的2种写法,若写公式,表达方式同latex写法
p + xlab("City mpg")
p + labs(x = "City mpg")
#####图例######
p + scale_colour_gradient(name = "Displment")
##等价于下面写法,注:图例由colour匹配生成见第一行代码
p + labs(colour = "Displment")
limites : 固定,限制标度定义域,用法与name类似。对于x轴和y轴 xlim, ylim作用一样。
breaks 和 labels : 控制显示在坐标轴或图例上的值。注意和limites区分
非通用参数
continuous variable(cv)标注代表连续变量, discrete variable(dv)标注代表离散变量,记得理解离散和连续对记忆,理解有很大帮助,常用整理如下,更多查看帮助文档:
fill,colours
gradient(cv)
渐变色(双色梯度),low,high控制两端
fill,colours
gradient(cv)
使用调色版控制颜色(vcd包)(RColorBrewer包)
fill,colours
manual(dv)
自定义离散变量颜色(百度查R语言颜色表)
fill,colour
brewer(dv)
palette(dv)
调整设置图和图例颜色(推荐配色Set1,Pastell1)
manual(dv)
values(dv)
自定义离散变量形状(同默认Point形状表一样)
continuous(cv)
expend(cv)
调整控制溢出量
例子1,添加标题,设置点的形状,设置点的颜色。瓦片图的例子图也差不多同下,可通过scale_fill_gradient(limits,low,high)设置
&- ggplot(diamonds) +
geom_point(aes(x = carat, y = price, shape = cut, colour = cut)) +
facet_grid(.~cut)
##分面方便观察变化
+ labs(x = "CARAT", y = "PRICE", title = "GGplot2 example",colour = "CUT") ##添加标题
+ scale_shape_manual(values = c(15,16,17,18,19)) ##设置点的形状
+ scale_colour_brewer(palette = "Pastel1")
###设置点的颜色,配色来自RColorBrewer包,display.brewer.all()可查看所有配色
对坐标轴,和数值进行对数变换并设置刻度
g &- ggplot(diamonds) +
geom_point(aes(x = carat, y = price ,colour = cut))
###将变量对数变换画图
h &- ggplot(diamonds) +
geom_point(aes(x = log(carat), y = log(price) ,colour = cut))
###对坐标轴也进行对数变换,并设置刻度
scale_x_log10(breaks = c(0.5,1,1.5,2)) + scale_y_log10(breaks = seq(100,15000,by=3725))
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6733次
排名:千里之外
原创:31篇
(2)(2)(2)(4)(4)(2)(5)(1)(3)(1)(2)(6)ggplot2 scale相关设置-坐标转换
在R中坐标轴转换有多种形式,包括对数转换,平方根转换以及坐标刻度前后进行调换
用到的函数分别有:
scale_x_log10(...)
scale_y_log10(...)
scale_x_sqrt(...)
scale_y_sqrt(...)
scale_x_reverse(...)
scale_y_reverse(...)
以上几个函数其实基于
scale_x_continuous(name&=&waiver(), breaks&=&waiver(), minor_breaks&=&waiver(), labels&=&waiver(), limits&=&NULL, expand&=&waiver(), oob&=&censor, na.value&=&NA_real_, trans&=&"identity")&
中的 参数trans 可以实现相同的效果
以iris数据集为例
p&-ggplot(iris,aes(Petal.Length,Petal.Width))+geom_point()
标准情况下的效果
p+scale_x_log10()
p+scale_x_continuous(trans="log10")
以上两行代码实现的效果是相同的,即对函数x轴做对数转换,效果如下
 另外,配合scales包,可以进行更丰富的scale设置
library(scales)
p+scale_x_continuous(trans=log2_trans(),labels=percent)
另外,借助coord_trans()函数,可以直接对x和y轴进行不同设置
p+scale_x_continuous(trans=log2_trans(),labels=percent)+
scale_y_continuous(labels=dollar)
p+coord_trans(x="log2",y="sqrt")
以上是最后两个函数的画图效果。
总体而言,scale转换设置过程相对比较简单,而且频率可能也相对较少,稍作了解即可。&
阅读(...) 评论()主题:ggplot 如何移除坐标刻度?+如何修改线条颜色的alpha值? | COS论坛 | 统计之都二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
写写代码、做做实验、学学做菜、跑跑步
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&从定义x坐标轴数据来看, 略瞥见了原图作者对数据处理的细心. Y叔吐槽了用excel切y轴数据, 容易产生经典的. 所谓misleading graph如其名, 是让数据产生歧义. 不禁感叹数据从不会骗人, 但是展示出来后可以有一千个哈姆雷特的版本.&引用wikipedia上的图, 这一左一右, y轴的选取不同, 最后可以口述表达的意思, 大相径庭.&&回到rstudio这张配图, 用ggplot2限定x轴区域, 可以简单地用xlim(1,3.5), 也可以coord_cartesian(xlim=c(1,3.5))这样, 区别就在于, 前者会忽略掉溢出(1,3.5)的所有数据, 而后者则是真正的放大到局部.&这一点在y轴上体现的更为明显, 可以参看cookbook for R的一篇指南:&原始正常数据图:&# These t all data points outside the graphing range are dropped,# resulting in a misleading box plotbp + ylim(5, 7.5)bp + scale_y_continuous(limits=c(5, 7.5))# Using coord_cartesian "zooms" into the areabp + coord_cartesian(ylim=c(5, 7.5))&&&这就是坐标轴的差别, 什么是misleading? 这就是...
阅读(2102)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'[Daily-R] ggplot2限定x或者y坐标轴而不产生misleading graph',
blogAbstract:'
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 ggplot 坐标轴刻度 的文章

 

随机推荐