ggplot2_Guides图例与增加坐标轴


作者:Li_Yuhui
四川大学研究生在读

本文是ggplot2_可视化_速成的第5节
第2节:coor_xxx()坐标系变换
第3节:scale_xxx()标度调整
第4节:facet_xxx()分面系统
第6节:themes主题系统


Guides图例与增加坐标轴

图例函数:

  • guide_colorbar()/guide_colourbar() 用于连续变量的图例
  • guide_legend() 用于离散变量的图例,也可以用于连续变量
  • guides() 将_colorbar和_legend嵌套进去,方便映射,如guides(fill = guide_colorbar())
    可以在scale_xxx()标度中指定guide类型,guide = "colorbar"或guide = “legend”
    常用公共参数:
作用对象 参数 描述
整个图例 direction 指定图例箱体排列方向,"horizontal"水平排列,或"vertical"垂直排列
reverse 逻辑值,是否翻转图例顺序,默认从小到大自上而下,翻转后从小到大自下而上
order 为数字,表示给图例编号,方便多个图例排列
图例标题 title 指定标题名称
title.position 标题相对图例箱体的位置, 水平图例为"left"或"right", 垂直图例为"top"或"bottom"
title.hjust 为数字,指定图例标题水平位置偏移
title.vjust 为数字,指定图例标题垂直位置偏移
图例刻度标签 label 为逻辑值,是否显示图例刻度标签
label.position 指定图例刻度标签相对箱体位置, 水平图例为"left"或"right", 垂直图例为"top"或"bottom"
label.hjust 为数字,指定图例刻度标签水平位置偏移
label.vjust 为数字,指定图例刻度标签垂直位置偏移
default.unit 表示指定箱体尺寸单位,用grid::unit()

guide_colorbar

**_colorbar()参数: **

作用对象 参数 描述
图例箱体 barwidth 指定箱体宽度,为数字或grid::unit()指定,默认单位为mm
barheight 指定箱体高度,为数字或grid::unit()指定
nbin 指定分箱数,数字越大则渐变约平缓
raster 逻辑值,表示是否将图例以删格形式呈现,不常用,栅格数据
箱体边框
<think>好的,我现在需要帮助用户解决关于ggplot2图例自定义的问题。用户提供了几个引用资料,我需要结合这些资料来生成一个详细的回答,并按照用户的要求结构化内容。首先,我应该理清每个引用中的关键点,然后组织成一个逻辑清晰的教程。 首先,引用[1]介绍了ggplot2图例基本概念和默认行为,这可以用来作为开头部分,解释图例的作用和默认位置。接着,引用[2]、[3]、[5]提到了使用scale_xxx_manual函数自定义图例,尤其是示例点的大小和颜色。引用[4]则涉及连续变量图例的调整,比如宽度和位置。引用[5]还提到了添加自定义系列标签,这可能修改图例标签有关。 接下来,我需要将这些信息分步骤讲解。常见的自定义需求包括调整位置、修改标题和标签、调整颜色和形状、示例点大小以及连续图例的设置。每个步骤都需要结合具体的代码示例,比如theme(legend.position)调整位置,scale_color_discrete修改标签,guides函数调整大小,scale_color_gradient处理连续变量等。 需要注意用户要求中的LaTeX格式,但根据问题内容,可能不需要数学公式,所以主要关注代码块和文本结构。同时,用户希望生成相关问题,我需要根据内容提出几个相关问题,比如如何调整位置、修改颜色标签等。 还需要检查代码是否正确,比如引用[3]中的示例代码可能需要调整变量名或参数,确保语法正确。例如,在示例代码中,数据集df的生成是否合理,绘图代码是否有误等。此外,用户提到的引用需要正确标注,比如在修改图例位置时引用[1]和[4],在修改标签时引用[5]等。 最后,确保回答使用中文,结构清晰,分步骤说明,并包含相关问题。可能需要将每个自定义方法作为一个小节,每个小节包含代码示例和解释,并在末尾添加相关问题。</think>### ggplot2图例自定义方法及示例 ggplot2通过**图例控制函数**和**主题设置**实现灵活的自定义。以下是常见需求的实现方法及代码示例: --- #### 一、调整图例位置 默认位置在图表右侧,可通过`theme(legend.position)`修改: ```r p <- ggplot(mtcars, aes(mpg, wt, color = factor(cyl))) + geom_point() # 位置可选参数:"none", "left", "right", "bottom", "top" p + theme(legend.position = "bottom") # 底部显示 p + theme(legend.position = c(0.8, 0.2)) # 自定义坐标(x,y)[^1][^4] ``` --- #### 二、修改图例标题标签 使用`labs()`和`scale_*_discrete()`: ```r p + labs(color = "气缸数") + # 修改标题 scale_color_discrete(labels = c("4缸", "6缸", "8缸")) # 修改标签[^5] ``` --- #### 三、调整颜色形状 通过`scale_*_manual`系列函数: ```r # 自定义颜色和形状 p + scale_color_manual( values = c("#1b9e77", "#d95f02", "#7570b3"), labels = c("小型", "中型", "大型") ) + scale_shape_manual(values = c(15, 16, 17))[^2] ``` --- #### 四、调整图例示例点大小 使用`guides()`函数: ```r # 创建示例数据 set.seed(1) df <- data.frame( x = rnorm(20), y = rnorm(20), group = factor(rep(1:2, each=10)) ) ggplot(df, aes(x, y, color=group)) + geom_point(size=3) + guides(color = guide_legend(override.aes = list(size=5)))[^3] ``` ![图例示例点大小调整效果](https://via.placeholder.com/300x200.png?text=图例示例点对比) --- #### 五、连续变量图例设置 对连续变量使用`scale_color_gradient`: ```r ggplot(faithfuld, aes(waiting, eruptions, fill = density)) + geom_tile() + scale_fill_gradient( name = "密度值", low = "white", high = "red", guide = guide_colorbar( barwidth = 15, # 调整宽度 direction = "horizontal" # 水平方向[^4] ) ) ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值