使用facet_wrap向ggplot添加图例

2023-12-08

我在用小面包裹显示两个变量(a and b)四个城市。我可以根据城市对图进行分组,但无法显示变量的图例(即a and b) using scale_color_discrete.

ggplot() + 
   geom_line(data=df, aes(x=year, y = a, group=city), colour="red",linetype = "longdash",show_guide = TRUE) + 
   geom_line(data=df, aes(x=year, y = b, group=city), colour="blue", show_guide = TRUE) +
   scale_color_discrete(name="Scenarios",labels=c("a" ,"b")) +
   guides(color=guide_legend(ncol=2)) +
   theme(legend.position="bottom")  +
   facet_wrap( ~ city, ncol=2) 

enter image description here

这是我的数据的一个子集:

structure(list(year = c(2015, 2016, 2016, 2016, 2016, 2016, 2016, 
2016, 2016, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2017, 2018, 
2018, 2018), 
          city = c("Calgary", "Calgary", "Calgary", "Halifax", 
"Halifax", "Ottawa", "Ottawa", "Yellowknife", "Yellowknife", 
"Calgary", "Calgary", "Halifax", "Halifax", "Ottawa", "Ottawa", 
"Yellowknife", "Yellowknife", "Calgary", "Calgary", "Halifax"), 
          a = c(25988.04, 37842.33, 37842.33, 11595.46, 11595.46, 49458.24, 
49458.24, 185.31, 185.31, 36718.9, 36718.9, 11176.82, 11176.82, 
47606.45, 47606.45, 176.5, 176.5, 36303.91, 36303.91, 10976.56),        
          b = c(25988.04, 37842.33, 37842.33, 11595.46, 11595.46, 49458.24, 
49458.24, 185.31, 185.31, 36718.9, 36718.9, 11176.82, 11176.82, 
47606.45, 47606.45, 176.5, 176.5, 36303.91, 36303.91, 10976.56
)), row.names = c(NA, -20L), 
          class = c("grouped_df", "tbl_df", 
"tbl", "data.frame"), vars = c("year", "city"), drop = TRUE, indices = list(
    0L, 1:2, 3:4, 5:6, 7:8, 9:10, 11:12, 13:14, 15:16, 17:18, 
    19L), 
          group_sizes = c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 1L), 
          biggest_group_size = 2L, labels = structure(list(year = c(2015, 
2016, 2016, 2016, 2016, 2017, 2017, 2017, 2017, 2018, 2018), 
           city = c("Calgary", "Calgary", "Halifax", "Ottawa", "Yellowknife", 
    "Calgary", "Halifax", "Ottawa", "Yellowknife", "Calgary", 
    "Halifax")), row.names = c(NA, -11L), class = "data.frame", vars = c("year", 
"city"), drop = TRUE))

您可以为变量分配颜色,然后使用scale_colour_manual执行此操作,如下所示:

vars <- c("a"="red", "b"="blue")
ggplot() + 
  geom_line(data=df, aes(x=year, y = a, colour="a"), linetype = "longdash") + 
  geom_line(data=df, aes(x=year, y = b, colour="b")) +
  scale_colour_manual(name="Scenarios:", values=vars) +
  theme(legend.position="bottom")  +
  facet_wrap( ~ city, ncol=2) 

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用facet_wrap向ggplot添加图例 的相关文章

  • 尽管提供了群落矩阵,纯素食 DBRDA 物种得分为空

    我使用纯素社区生态包在 R 中执行了 基于距离的冗余分析 dbRDA 我想在 dbRDA 结果的排序图中显示 鱼类 营养群体对样本之间差异 营养级鱼类组合的丰度数据 的相对贡献 IE 将箭头和营养级组名称叠加到排序图上 其中箭头线的长度表示
  • 如何从 data.frame 中选择行和列的子集

    我有这个 d d Age gt 2 它返回 Age 超过 2 的所有行 但我只想返回几列中的值 例如 d X 和 d Y 而不是全部 无论如何我可以做到这一点吗 Thanks d d Age gt 2 c X Y
  • 包检查时如何有效处理未压缩的保存?

    在最近开发一个包的过程中 我将数据集包含在data 我的包的文件夹 在我的具体情况下 我有 5 个数据集 所有这些数据集都位于data table格式 尽管我在下面描述的问题仍然存在 如果我将它们保留为data frame 我已将每个人单独
  • ggplot 中跨组的连续线

    我有一个数据时间序列 其中观察了一些数据 模拟了一些数据 我想生成整个数据系列随时间变化的图 其中颜色表示数据源 但是 我只能弄清楚如何使 ggplot 中的 geom line 连接同一组中的点 这是一个例子来说明 Create samp
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • 通过 RSelenium 单击按钮

    我正在尝试使用 Rselarium 和 Rvest 来抓取 REI 的评论 吊床 我想点击底部的按钮 x 次 这样我就可以抓取所有评论 我有点失落 这是我到目前为止所拥有的 如果您也知道如何在取景器中预览您正在做的事情 而不是屏幕打印 那就
  • 如何在R中逐行写入文件

    我正在尝试逐行读取 csv 文件 并且仅选择左侧的第二个和第三个单元格以及右侧的第三个单元格 例如 如果这一行中有 17 个单元格 我将选取第 15 个单元格 然后我想合并这 3 个单元格 用逗号分隔 然后将此行写入一个新的 csv 文件
  • R:在 Shiny 中,如何修复应用于“反应性”类对象的“xtable”没有适用的方法

    我收到此错误 Error in UseMethod xtable no applicable method for xtable applied to an object of class reactive UI R library shi
  • R:在函数中包含循环?

    以下代码可用于创建一个 data frame 其中 Kendall Tau 和 Spearman 相关结果彼此相邻 data mtcars mtcars correlation lt function x y df1 cor data fr
  • 在 R 中修改传单弹出窗口

    我想修改 R 中传单弹出窗口的外观 帮助文件指出 in the popupOptions 函数需要 传递给底层 Javascript 对象构造函数的额外选项 In 这个例子 https rstudio github io leaflet p
  • 如何在multilist中设置xlim?

    以下代码创建 3 个向量 并将它们显示为交错直方图 a lt c 1 2 3 b lt c 1 1 2 c lt c 1 1 1 l lt list a b c multhist l col c red green blue xlim c
  • 如何优化 R 中的 sapply 来计算数据帧上的运行总计

    我在 R 中编写了一个函数来按月份计算累积总数 但随着数据集变大 我的方法的执行时间呈指数增长 我是一名 R 程序员新手 你能帮我提高效率吗 该函数以及我调用该函数的方式 accumulate lt function recordnum d
  • 根据共同值对两个数据帧求和

    我有一个看起来像的数据框 day of week count 1 0 3 2 3 1 3 4 1 4 5 1 5 6 3 另一个喜欢 day of week count 1 0 17 2 1 6 3 2 1 4 3 1 5 4 5 6 5
  • R:如何更改ggvis闪亮应用程序中特定范围的绘图背景颜色

    I have a simple shiny app like below and you can run it The plots are created by ggvis and user can choose student name
  • 使用 dplyr 的 select 引用变量名[重复]

    这个问题在这里已经有答案了 通常我会想要选择变量的子集 其中该子集是函数的结果 在这个简单的例子中 我首先获取与宽度特征相关的所有变量名称 library dplyr library magrittr data iris width var
  • 将 csv 文件上传到shinyApps.io

    我的应用程序在本地运行良好 并且我能够成功地将应用程序部署到shinyapps io 服务器 但是当我尝试使用shinyapps URL 在浏览器中加载应用程序时 收到以下错误消息 错误对象 数据 不是成立 我认为这是因为 data 变量从
  • 在 ggplot 中过滤管道 df

    我正在使用 dplyr 管道来清理我的 df 然后直接输入到 ggplot 中 但是 我只想一次只绘制一组 因此我需要过滤到该组 问题是 我希望比例保持不变 就好像所有群体都存在一样 是否可以在 ggplot 命令中进一步过滤管道 df 例
  • 绘制带有颜色渐变的geom_segment线? (或者还有另一种方法来强调开始与结束吗?)

    我的数据框中有大量行 100 000 的两组纬度和经度变量 我正在尝试绘制一个连接这两组坐标的图 即 从纬度1 经度1 to 纬度2 经度2 使用 geom segment 使用非常低的 alpha 使线条透明 因为线条太多 我想强调这些线
  • 一次评论多个对象

    假设您有一个变量 a 到 j 的列表 for x in 1 10 assign letters x x 您将如何评论那些最近创建的对象 我尝试过类似的事情 for x in 1 10 comment get letters x lt pas
  • R Shiny - 使用 DataTable 移动列名称

    我有一个非常复杂的闪亮代码 其中有几个面板和这些面板内的几个表格 启动应用程序时 列名称与列值正确对齐 但是 一旦我更改应用程序表格下的页码 列名称就会移动到左侧 而值仍保留在中间 如何强制应用程序使列名称与列值对齐 一个可重现的例子 li

随机推荐

  • OneWayToSource 绑定在 .NET 4.0 中似乎已损坏

    OneWayToSource NET 4 0 中的绑定似乎已损坏 我有这个简单的 Xaml 片段
  • Dart 如何获取字符串形式的枚举名称

    在 Dart 中提供枚举之前 我编写了一些繁琐且难以维护的代码来模拟枚举 现在想要简化它 我需要以字符串形式获取枚举的名称 这可以用 Java 完成 但不能 例如 当我想要的是 MONDAY 时 小测试代码片段在每种情况下都会返回 day
  • 通过 Google Maps API v3 访问 ExtendedData 信息

    我有一个 KML 文件 其中包含每个
  • D3 强制布局:如何强制一组节点停留在给定区域

    在 D3 力布局图中 我尝试根据节点组强制某些节点留在给定区域 有一个中心节点 该节点是固定的 我希望由红线连接的节点保留在屏幕高度的前 1 3 处 由描边线连接的节点保留在第二个 1 3 处 由蓝线连接的节点保留在最后 1 3 处 但我希
  • 是否可以在 x 轴(经度)上移动 geopandas 世界地图?

    我想知道是否有一种方法可以将 geopandas 世界地图集中在特定的经度点上 基本上 只是想将其移动约 5 10 度左右 上一个问题是几个月前发布的 但没有收到答案 想知道是否有人知道解决方案 stackoverflow 上原始问题的链接
  • 循环遍历具有特定扩展名的所有文件并对其执行某些操作

    这是我第一次使用 Linux shell 脚本 它看起来确实很强大 但我仍然有点困惑 我想循环遍历目录中具有特定扩展名的所有文件递归地 所有子目录 子子目录和 并通过在它们上运行可执行文件在原始文件的确切位置生成一个具有相同名称但扩展名不同
  • 从两列映射中对多对多关系进行分组

    我有一个 SQL 表 可以映射作者和书籍等内容 我想将链接的作者和书籍 同一作者撰写的书籍以及共同撰写一本书的作者 分组在一起 并确定这些组的规模有多大 例如 如果 J K 罗琳与朱诺 迪亚兹合写 朱诺 迪亚兹与扎迪 史密斯合写了一本书 那
  • 单击 UIWebView 上的链接时打开新的 UIViewController

    我发现这个线程符合我的问题 单击 UIWebView 中的链接会推送到 NavigationView 堆栈 但以下情况有所不同 我没有使用导航控制器 而是使用基于视图的应用程序在按下相应按钮时手动切换到不同的视图控制器 我没有使用链接 而是
  • Excel VBA:形状集合中的索引 = ZOrderPosition?

    工作表的 Shapes 集合中形状的索引是否始终与其 ZOrderPosition 相同 原则上不能直接查询给定形状的索引 我已经在少数情况下 最多 3000 个形状 验证了这一点 但我没有找到任何相关文档 我遍历了整个集合 询问 Inde
  • 无法解析 Spring 属性占位符

    我有我的配置
  • 将一个正则表达式匹配替换为另一个正则表达式匹配,反之亦然

    我需要替换为字符串foo bar foo bar bar foo all foo to bar和所有bar to foo 所以结果应该是这样的bar foo bar foo foo bar 我已经尝试过这种方式 library string
  • 如何使用 EF Core 2.2 将 JSON_VALUE 转换为 DateTime?

    我正在测绘JSON VALUE使用来自的技术如何编写DbFunction的翻译 由于 JSON 中并非所有值都是字符串 因此有时需要进行转换 当转换为int 一切安好 var results context Set
  • JasperReports:如何屏蔽或过滤图表轴上的标签

    我正在使用基于简单数据集的简单面积图 如下所示 DateTime sql timestamp Value Integer 2012 02 17 00 02 02 100 2012 02 17 00 02 08 110 2012 02 17
  • `margin:auto;` 不适用于内联块元素

    我有一个 容器 div我给了margin auto 只要我给它一个特定的 它就工作得很好width 但现在我把它改为inline block and margin auto 停止工作 旧代码 有效 container border 1px
  • Java 非最终 int(s) 构造后可见

    我有一个带有非最终 int 变量的 java 类 我在构造函数中将其显式初始化为 0 对该变量的所有其他访问均由 ReentrantLock 管理 我是否需要担心线程不会看到初始值 0 因为我没有在构造函数中使用锁 是的 你必须担心 为了避
  • 如何通过命令提示符获取硬件 ID/序列号?

    最终我将在 Java Applet 中使用它来为用户提供额外的安全性 我知道这是可能的 因为我记得以前做过 只是不记得获取正确信息的行 我正在寻找将返回处理器 ID 序列号的行 只要这两个就好了 我使用过谷歌并尝试了一些命令 例如 wmic
  • SQL Server 2005 中使用 XML 的层次结构

    我想知道是否有办法在 SQL Server 2005 中选择层次结构并返回 xml 格式 我有一个包含大量数据的数据库 大约 2000 到 3000 条记录 我现在使用 SQL Server 2005 中的一个函数来检索层次结构中的数据并返
  • C#中如何获取IP地址?

    假设一台计算机连接到许多网络 实际上不止一个 我可以获得一个IP地址列表 其中包括计算机在网络中拥有的所有IP地址 但是我如何知道某个IP地址属于哪个网络呢 首先 您需要了解一些术语 这些示例数字假定 IPv4 网络 IP地址 192 16
  • 如何为 Json.net 生成 json 对象的所有可能的 LINQ 字符串?

    在 json net 中 我们可以使用基于 linq to json 的本教程 我想知道有没有办法生成字符串查询 考虑这个 json 示例 Name Test Status S1 S2 S3 S4 People Name A Family
  • 使用facet_wrap向ggplot添加图例

    我在用小面包裹显示两个变量 a and b 四个城市 我可以根据城市对图进行分组 但无法显示变量的图例 即a and b using scale color discrete ggplot geom line data df aes x y