如何反转ggplot2中的图例键顺序

简介: 如何反转ggplot2中的图例键顺序

动动发财的小手,点个赞吧!

本教程中,我们将学习如何反转 ggplot2 中图例键的顺序。

在 ggplot2 中,当我们在 aes() 中使用颜色或填充参数为变量着色时,我们会得到一个带有键的图例,显示哪些键匹配哪些颜色。在这里,我们将展示如何使用 guides() 参数为两种类型的图反转图例键的顺序,一种是带有由“颜色”参数制作的图例的散点图,另一种是带有颜色的条形图添加了“填充”参数。

让我们从加载 tidyverse 开始。

library(tidyverse)
theme_set(theme_bw(16))

我们将使用 tidyverse 提供的钻石数据。

diamonds %>% head()

带彩色点的散点图

让我们在两个变量之间绘制散点图,并使用 aes() 中的颜色参数为第三个(分类)变量着色。

在这里,我们使用从钻石数据中随机抽取的 200 个数据点,使用 slice_sample() 函数制作散点图。

diamonds %>% 
  slice_sample(200) %>%
  ggplot(aes(x=carat, y=price, color=cut))+
  geom_point()
ggsave("how_to_reverse_legend_key_order_legend_with_color.png")

这就是使用默认图例键排序的散点图的样子。

我们可以使用带有颜色参数的 guides() 函数来反转图例键顺序。我们使用颜色参数来反转,因为我们之前在 aes() 函数中使用颜色参数创建了图例。 reverse = TRUE 的 guide_legend() 函数实际上颠倒了 kegend 键顺序。

diamonds %>% 
  slice_sample(n=200) %>%
  ggplot(aes(x=carat, y=price, color=cut))+
  geom_point()+
  guides(color = guide_legend(reverse = TRUE))
ggsave("reverse_legend_key_order_legend_with_color.png")

带填充颜色的条形图

在第二个示例中,让我们制作一个条形图,其中填充了第二个变量指定的颜色。我们在这里使用 aes() 中的 fill 参数来添加颜色,用颜色填充条形图。

diamonds %>% 
  ggplot(aes(cut, fill=clarity))+
  geom_bar()+
  scale_fill_brewer(palette="Dark2")
ggsave("how_to_reverse_legend_key_order_legend_with_fill.png")

我们可以使用 guides() 函数,但这次使用 fill 参数来反转此处的图例键顺序,因为图例是使用 aes() 中的 fill 参数创建的。

diamonds %>% 
  ggplot(aes(cut, fill=clarity))+
  geom_bar()+
  scale_fill_brewer(palette="Dark2")+
  guides(fill = guide_legend(reverse = TRUE))
ggsave("reverse_legend_key_order_for_legend_with_fill.png")

相关文章
G2Plot Tooltip 自定义头部、尾部、辅助线
G2Plot Tooltip 自定义头部、尾部、辅助线
253 0
|
5月前
|
计算机视觉
查找和绘制直方图
【6月更文挑战第12天】查找和绘制直方图。
71 1
|
3月前
|
数据可视化 Python
|
6月前
|
数据挖掘 数据处理 索引
使用Python实现DataFrame中奇数列与偶数列的位置调换
使用Python实现DataFrame中奇数列与偶数列的位置调换
72 1
G2Plot Line 线性 x 轴头尾两头不留空白(或指定留白范围)
G2Plot Line 线性 x 轴头尾两头不留空白(或指定留白范围)
109 0
|
6月前
|
存储 算法 Java
给定一组棋子的坐标,判断是否可以互相攻击。如果两个棋子的横纵坐标任意一个相同,则认为它们可以互相攻击。(提示:使用哈希表)
给定一组棋子的坐标,判断是否可以互相攻击。如果两个棋子的横纵坐标任意一个相同,则认为它们可以互相攻击。(提示:使用哈希表)
47 0
Range滑动条颜色分区问题
Range滑动条颜色分区问题
99 1
|
测试技术
Dev TrackBar的使用--坐标轴反转以及滚轮反向解决
Dev TrackBar的使用--坐标轴反转以及滚轮反向解决
python 绘制箱型图(boxplot)时如何去掉出现的连续散点
python 绘制箱型图(boxplot)时如何去掉出现的连续散点
python 绘制箱型图(boxplot)时如何去掉出现的连续散点
|
存储 Python
python 如何实现数组的间隔排列:每一行比前一行间隔一个位置排列。
最近,在处理一些数据时,由于数据是按照每小时进行采样的,为了保持周期的完整性,需要将同一时刻对应的数据进行平均处理。
python 如何实现数组的间隔排列:每一行比前一行间隔一个位置排列。