我是男友的R小帮手

和男友差不多同时开始学习 R,但他是搞理论研究的,程序写的并不多,最近因为工作需求经常向我请教ggplot2,我自然很乐意。谁知道!他总提出一些莫名其妙的要求,又没时间去 Google,于是我就担任起了 R 语言小助手的职责。

  • 如何更改 facet 标签
  • 如何让标签竖着显示(是不是很奇葩)
  • 如何让 facet 显示子图坐标刻度

如何更改 facet 标签

自从学了 ggplot2 中的分面(facet)功能,只能说好好用!看个图你就知道了。

library(ggplot2)
data(mtcars)
ggplot(mtcars, aes(drat, mpg)) + geom_point() + facet_wrap(~cyl)

facet

是不是很酷炫!但男友总有些奇奇怪怪的要求,比如,他说怎样把显示的4 6 8 的标签改掉呢,还跟我说这不是很自然嘛。

我第一反应就是把 data.frame 的4 6 8 直接改成对应的levels,他又说改改多麻烦。于是求助 Google,得到了答案,可以利用 labeller 这个参数。

new_label = c("4" = "si", "6" = "liu", "8" = "ba")
ggplot(mtcars, aes(drat, mpg)) + geom_point() + 
  facet_wrap(~cyl, labeller = labeller(cyl = new_label))

facet_label

如何让标签竖着显示

刚向男友炫耀完,问题又来了。除了 facet_wrap, 还有 facet_grid 可以生成多行多列的图片排版。可是,他说行标签是横着印的,要歪脖子看,可不可以竖着显示。天!你歪一下脖子会怎么样啊到底,况且不歪也看得见啊。比如下图

ggplot(mtcars, aes(drat, mpg)) + geom_point() + facet_grid(gear~cyl)

facet_grid

不过不查不知道,还真有把标签竖过来的方法,只要加一句!

ggplot(mtcars, aes(drat, mpg)) + geom_point() + facet_grid(gear~cyl) + 
theme(strip.text.y = element_text(angle = 0))

facet_grid2

如何让 facet 显示子图坐标刻度

正想邀功,男友居然有问题了。怎样让每个分面都显示坐标刻度呢?

我:试试 facet_grid(gear~cyl, scales = “free”)
他:这个是让坐标刻度不一样,不是我要的
我:每个子图都显示刻度有什么用啊, 这样失去 facet 的意义了啊
他:和你太难交流了

哭。。。

继续 Google 之后,发现在 facet_wrap 里可以用 scales = “free” 显示子图坐标轴,但 facet_grid 里就没有作用。不知道男友满不满意= =

ggplot(mtcars, aes(drat, mpg)) + geom_point() + facet_wrap(~cyl, scales = "free")

scales

又接到电话,有了新的需求,继续吧。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值