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

news2025/1/4 15:58:01

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

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

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

alt

让我们从加载 tidyverse 开始。

library(tidyverse)
theme_set(theme_bw(16))

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

diamonds %>% head()
alt

带彩色点的散点图

让我们在两个变量之间绘制散点图,并使用 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")

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

alt

我们可以使用带有颜色参数的 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")

alt

带填充颜色的条形图

在第二个示例中,让我们制作一个条形图,其中填充了第二个变量指定的颜色。我们在这里使用 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")
alt

我们可以使用 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")
alt

Reference

[1]

Source: https://datavizpyr.com/reverse-legend-key-order-in-ggplot2/

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/542094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝奏云直链解析

[玫瑰]蓝奏云直链获取在线解析网站源码 蓝奏云链接解析 本地API接口 [玫瑰]支持有无密码和短期直链和永久直链,同时还可以显示文件名和大小。 [玫瑰]这个解析器无需数据库即可搭建,API接口已经本地化,非常简单易用。 [玫瑰]解压密码 123321 链…

zotero-style 摸索

打开zotero-编辑-首选项-style 可以看到图中所示的function界面 标签 刚安装好的时候原来自带的标签都不显示了,重启也没用,原来是不要勾选function下的title就好了 还有一种解决方法是,同时勾选title和tag,然后在标题栏右键&am…

【数据结构】堆(Heap)

文章目录 前言一、堆1、 概念2、性质3、结构 二、堆的实现1、算法实现:向下调整算法向上调整算法(堆的创建)堆的插入堆的删除堆的排序 2、 代码实现(小堆):堆的定义交换检查容量向下调整向上调整堆的初始化堆的创建销毁堆堆的插入堆的删除获取堆顶元素判…

Linux下C/C++实现DNS查询(DNS QUERY)

DNS 的全称是 Domain Name System 或者 Domain Name Service,它主要的作用就是将人们所熟悉的网址 (域名) “翻译”成电脑可以理解的 IP 地址,这个过程叫做 DNS 域名解析。域名是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称&am…

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结-必禁

Linux维护安全-PHP安全-php高危函数禁用-php必需禁用的最高危函数总结,优雅草松鼠蜻蜓系统安装必须开启proc_open,putenv,但是希望大家在安装完成后一定要禁用。 必须禁用的高危函数: system,exec,passthru,shell_exec,popen,proc_open,pute…

国考省考行测:数量关系,十字交叉法,增长率反应去年的量,浓度反应的是浓液,平均反应的是人数

国考省考行测:十字交叉法 2022找工作是学历、能力和运气的超强结合体! 公务员特招重点就是专业技能,附带行测和申论,而常规国考省考最重要的还是申论和行测,所以大家认真准备吧,我讲一起屡屡申论和行测的重要知识点 遇…

3网络互联-3.5【实验】【计算机网络】

3网络互联-3.5【实验】【计算机网络】 前言推荐3网络互联3.4 IP分组转发与静态路由3.5 动态路由配置及RIP协议分析实验目的实验内容及实验环境实验原理1. RIP协议2.RIP分组格式3.RIP协议工作原理 实验过程1.搭建一个多跳网络拓扑,配置RIP协议参数2&#…

【ONE·C++ || 哈希(一)】

总言 主要介绍哈希基本框架及其unordered系列容器简述。 文章目录 总言0、思维导图1、unordered系列介绍2、底层:哈希2.1、哈希概念介绍:哈希(散列)函数和哈希表(散列表)2.2、映射关系建立与问题说明:除留余数法、哈希冲突2.3、闭散列及其实…

企业邮箱解析:为何它是企业必备的高效沟通工具?

企业家都知道,一个一致的品牌可以提高它在人们心中的可靠性。这就是为什么大多数企业投资于他们的网络和企业邮箱提供商的原因,可以体现品牌正规性。 企业邮箱为您提供与您的域名匹配的企业电子邮件(nameyourbusiness.com)。它还为您提供: 1、…

【HelloWorld篇】深入学习Spring-Boot

前言 该专栏用来记录一下深入学习SpringBoot,了解SpringBoot如何扩展、如何自定义编写属于自己的start,了解 AOP,IOC,过滤器,拦截器,注解,定时器等实际开发用到的场景以及如何整合第三方&#…

Vivado综合属性系列之六 MAX_FANOUT

目录 一、前言 二、MAX_FANOUT ​ ​2.1 工程代码 ​ ​2.2 工程结果 ​ 一、前言 ​ ​在时序违例的工程中,有一个很常见的原因:高扇出,此时就需要降低信号的扇出,可通过属性MAX_FANOUT来控制信号的扇出值&#xff…

32.Git分布式版本控制

目录 一、Git分布式版本控制。 (1)Git简介。 (2)Git工作流程图。 (3)Git安装。 (4)Git基本配置。 (4.1)用户信息配置(不一定是真实的信息&a…

RK3568平台开发系列讲解(项目篇)手写数字识别

🚀返回专栏总目录 文章目录 一、安装飞桨(PaddlePaddle)二、手写数字识别任务2.1、准备训练集和测试集2.2、模型组网2.3、模型训练与评估2.4、模型保存和导出ONNX模型2.5、完整程序2.6、模拟推理和导出RKNN模型三、板端部署推理3.1、安装RKNN Toolkit Lite2和相关库3.2、推…

从零开始学习JVM(五)-运行时数据区的方法区

1. 方法区基本介绍 官方文档:The Java Virtual Machine Specification 《Java虚拟机规范》中明确说明:“尽管所有的方法区在逻辑上是属于堆的一部分,但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotSpotJVM而言&…

手写简易RPC框架

目录 简介 服务提供者 服务注册:注册中心 HttpServerHandler处理远程调用请求 consumer服务消费端 简介 RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务, 而不需要了解…

我在VScode学Java(Java二维数组)

我的个人博客主页:如果\真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客:(我在Vscode学Java) 接上回Java一维数组的介绍(我在VScode学Java(Java一维数组) ) 二维数组是Java中的一…

MySQL:数据库的约束

目录 1.数据库约束 1.1 非空:not null 1.2 唯一:unique ​​​​​​​ 1.3 默认值:default 1.4 列描述:comment 1.5 主键约束:primary key 1.6 外键约束 1.7 综合案例 2.插入查询结果 3.聚合函数 4.group by…

AI心理咨询师:舒缓焦虑,解放压力的秘诀

在如今高压力的生活和工作环境下,焦虑和内耗成为了越来越多人的问题。这一现象对我们的身体和心理都会造成很大的影响。如何治愈我们的焦虑和精神内耗? 1.减少工作压力 - 了解和认可自己的能力和限制,不要让工作压力压垮自己。 - 适当的规…

软件测试工程师的职业发展方向

一、软件测试工程师大致有4个发展方向: 1 资深软件测试工程师 一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。 达到这个水平比较困难,这需要了解很多知识,例如C语言,JAVA语言&#xff0c…

浙大数据结构

题目详情:06-图1 列出连通集 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1…