ggplot2-主题4

1. 面板元素

面板元素控制图像面板的外观

元素制定者描述
panel.backgroundelement_rect()面板背景(数据下面)
panel.borderelement_rect()面板边界(数据上面)
panel.grid.majorelement_line()主网格线
panel.grid.major.xelement_line()竖直主网格线
panel.grid.major.yelement_line()水平主网格线
panel.grid.minorelement_line()次网格线
panel.grid.minor.xelement_line()竖直次网格线
panel.grid.minor.yelement_line()水平次网格线
aspect.ratio数值图像宽高比

panel.background和panel.border的主要不同点在于,背景(前者)绘制在数据的下面一层,边界(后者)绘制在数据的上面一层。因此,在覆盖panel.border的时候,总是需要设定fill = NA

base <- ggplot(df, aes(x, y)) + geom_point()

# 修改背景
base + theme(panel.background = element_rect(fill = "lightblue"))
# 微调主网格线
base + theme(panel.grid.major = element_line(color = "grey60", size = 0.8))
# 只关注一个方向的网格线
base + theme(panel.grid.major.x = element_line(color = "grey60", size = 0.8))

base2 <- base + theme(plot.background = element_rect(color = "grey50"))

# 宽的
base2 + theme(aspect.ratio = 9/16)
# 长瘦型的
base2 + theme(aspect.ratio = 2/1)
# 正方形的
base2 + theme(aspect.ratio = 1)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. 分面元素

以下主图元素和分面有关

元素制定者描述
strip.backgroundelement_rect()分面标签背景
strip.textelement_text()条状文本
strip.text.xelement_text()水平条状文本
strip.text.yelement_text()竖直条状文本
panel.spacingunit()分面间边距
panel.spacong.xunit()竖直分面边距
panel.spacing.yunit()水平分面边距

元素strip.text.x会影响到facet_wrap()或facet_grid();而strip.text.y只会影响到facet_grid()

df <- data.frame(x = 1:4, y = 1:4, z = c("a", "a", "b", "b"))
base_f <- ggplot(df, aes(x, y)) +
	geom_point() + facet_wrap(~z)

base_f
base_f + theme(panel.spacing = unit(0.5, "in"))
base_f + theme(strip.background = element_rect(fill = "grey20", color = "grey80", size = 1), strip.text = element_text(color = "white"))

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 存储输出

若要保存图像到另外一个程序中使用,有两种基本的输出类型可共选择:光栅图形或矢量图形

  • 矢量图形用一系列过程来描述图像:画一条线,起点是(x1,y1),终点是(x2,y2);画一个圆圈,圆心在(x3,x4),半径是r。这意味着它们可以被“无限地”放大;不会丢失细节。最有用的矢量图形格式是pdf和svg
  • 光栅图以像素阵列形式存储,具有固定的最优观测大小。最有用的光栅图形格式是png

除非有确切的理由,一般来说会使用矢量图形:它们大部分情况下有着更好的效果。使用光栅图形有以下两大原因

  1. 图像(例如,散点图)有成千上万个图形对象(例如,点)。矢量版本会很大,而且它的渲染速度会很慢
  2. 在微软Office里嵌入图形。微软对矢量图形的支持比较差(除了它们自己的DrawingXML格式,而现阶段R很难生成这种格式),因而光栅图形比较适合这种情况

有两种方法来保存ggplot2的输出。可以用R的标准做法:打开一个图形设备,生成图像,然后关闭设备

pdf("output.pdf", width = 6, height = 6)
ggplot(mpg, aes(displ, cty)) + geom_point()
dev.off()

以上方法适用于所有软件包,不过比较繁琐。ggplot2提供了一个方便的ggsave()

ggplot(mpg, aes(displ, cty)) + geom_point()
ggasve("output.pdf")

ggsave()是为了图像交互而优化过的函数,可以在绘制图像之后使用它
它有以下重要参数

  • 第一个参数path指定了图片的存储路径。它会根据文件扩展名自动选择正确的图形设备。ggsave()支持这些类型:.eps .pdf .svg .wmf .png .jpg .bmp .tiff
  • width和height控制输出大小,单位是英寸。如果不设定它们,它们会使用当前屏幕图形设备的尺寸
  • 对于光栅图形(如.png和.jpg等),dpi参数控制图像的分辨率,默认值为300,适合大部分打印设备,不过可以修改为600,用于高分辨率输出,或者修改为72,用于屏幕(如网页)的展示
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值