ggplot和两个不同的geom_line():图例不出现

2024-03-31

我有以下代码(dput数据集的数据在这里):

ruz <- structure(list(date = structure(c(16617, 16618, 16619, 16622, 
16623, 16624, 16625, 16626, 16629, 16630, 16631, 16632, 16633, 
16636, 16637, 16638, 16639, 16640, 16643, 16644, 16645, 16646, 
16647, 16650, 16651, 16652, 16653, 16654, 16657, 16658, 16659, 
16660, 16661, 16664, 16665, 16666, 16667, 16668, 16671, 16672, 
16673, 16674, 16675, 16678, 16679, 16680, 16681, 16682, 16685, 
16686, 16687, 16688, 16689, 16692, 16693, 16694, 16695, 16696, 
16699, 16700, 16701, 16702, 16703, 16706, 16707, 16708, 16709, 
16710, 16713, 16714, 16715, 16716, 16717, 16720, 16721, 16722, 
16723, 16724, 16727, 16728, 16729, 16730, 16731, 16734, 16735, 
16736, 16737, 16738, 16741, 16742, 16743, 16744, 16745, 16748, 
16749, 16750, 16751, 16752, 16755, 16756, 16757, 16758, 16759, 
16762, 16763, 16764, 16765, 16766, 16769), class = "Date"), val1 = c(61.8954, 
61.6297, 61.7859, 62.2135, 62.692, 63.026, 63.1511, 63.008, 62.7991, 
62.5304, 62.3971, 62.1703, 61.9535, 61.7927, 61.8367, 62.1856, 
62.7663, 63.5846, 64.859, 66.0745, 65.9327, 65.1387, 65.8362, 
67.9171, 68.8917, 68.7714, 69.295, 69.9932, 70.0878, 70.0563, 
71.0985, 71.7451, 71.9923, 72.3836, 72.6186, 72.7895, 74.1316, 
76.3577, 79.6818, 80.4601, 79.637, 77.1905, 74.7982, 74.0868, 
73.6844, 74.7815, 75.1829, 75.0874, 76.0362, 76.5334, 76.1729, 
76.2661, 76.521, 76.5815, 76.1411, 74.7473, 74.229, 74.8073, 
74.8083, 74.2189, 73.7976, 74.0765, 73.7323, 73.5319, 73.8853, 
73.7351, 73.2462, 73.7254, 73.4657, 72.5227, 70.9683, 70.1357, 
69.7459, 69.7823, 70.714, 71.5863, 71.3391, 70.2717, 70.1001, 
70.3965, 70.964, 70.901, 69.6083, 69.0542, 70.325, 71.2619, 70.6912, 
70.5258, 70.6195, 69.9786, 68.9845, 68.7403, 69.5909, 69.6324, 
69.2801, 69.3884, 70.4129, 71.6024, 70.7705, 69.6673, 69.2706, 
69.2517, 69.2788, 69.3983, 69.7819, 69.8404, 69.8002, 69.9816, 
70.1287)), .Names = c("date", "val1"), row.names = c("2015-07-01", 
"2015-07-02", "2015-07-03", "2015-07-06", "2015-07-07", "2015-07-08", 
"2015-07-09", "2015-07-10", "2015-07-13", "2015-07-14", "2015-07-15", 
"2015-07-16", "2015-07-17", "2015-07-20", "2015-07-21", "2015-07-22", 
"2015-07-23", "2015-07-24", "2015-07-27", "2015-07-28", "2015-07-29", 
"2015-07-30", "2015-07-31", "2015-08-03", "2015-08-04", "2015-08-05", 
"2015-08-06", "2015-08-07", "2015-08-10", "2015-08-11", "2015-08-12", 
"2015-08-13", "2015-08-14", "2015-08-17", "2015-08-18", "2015-08-19", 
"2015-08-20", "2015-08-21", "2015-08-24", "2015-08-25", "2015-08-26", 
"2015-08-27", "2015-08-28", "2015-08-31", "2015-09-01", "2015-09-02", 
"2015-09-03", "2015-09-04", "2015-09-07", "2015-09-08", "2015-09-09", 
"2015-09-10", "2015-09-11", "2015-09-14", "2015-09-15", "2015-09-16", 
"2015-09-17", "2015-09-18", "2015-09-21", "2015-09-22", "2015-09-23", 
"2015-09-24", "2015-09-25", "2015-09-28", "2015-09-29", "2015-09-30", 
"2015-10-01", "2015-10-02", "2015-10-05", "2015-10-06", "2015-10-07", 
"2015-10-08", "2015-10-09", "2015-10-12", "2015-10-13", "2015-10-14", 
"2015-10-15", "2015-10-16", "2015-10-19", "2015-10-20", "2015-10-21", 
"2015-10-22", "2015-10-23", "2015-10-26", "2015-10-27", "2015-10-28", 
"2015-10-29", "2015-10-30", "2015-11-02", "2015-11-03", "2015-11-04", 
"2015-11-05", "2015-11-06", "2015-11-09", "2015-11-10", "2015-11-11", 
"2015-11-12", "2015-11-13", "2015-11-16", "2015-11-17", "2015-11-18", 
"2015-11-19", "2015-11-20", "2015-11-23", "2015-11-24", "2015-11-25", 
"2015-11-26", "2015-11-27", "2015-11-30"), class = "data.frame")

dfr <- structure(list(date = structure(c(16616, 16646, 16677, 16708, 
16738, 16769), class = "Date"), val2 = c(0, 0.0920000000000001, 
0.120392, 0.136077488, 0.0917704659680001, 0.0874033841041282
)), .Names = c("date", "val2"), row.names = c("2015-06", "2015-07", 
"2015-08", "2015-09", "2015-10", "2015-11"), class = "data.frame")

ggplot:

ggplot() + 
    geom_line(data = ruz, aes(date, val1), size = 1.5, color = "blue") + 
    geom_line(data = dfr, aes(date, val2 * 100), size = 1.5, color = "red") + 
    scale_fill_manual(values = c("blue", "red"))

which produces the following graph: enter image description here

我的问题是,到底如何修改它以显示图例?


如果你想避免组合 data.frames,你可以这样做:

ggplot() + 
  geom_line(data = ruz, aes(date, val1, color = "a"), size = 1.5) + 
  geom_line(data = dfr, aes(date, val2 * 100, color = "b"), size = 1.5) + 
  scale_color_manual(name = "Colors", 
                     values = c("a" = "blue", "b" = "red"))

为了获得图例,您必须将某些内容映射到其中的颜色aes。然后您可以使用scale_color_manual定义映射字符值的颜色。在某些情况下,这种技巧比重塑/组合数据更容易,并且会产生更具可读性的代码。

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

ggplot和两个不同的geom_line():图例不出现 的相关文章

  • R - 重塑 - 熔化错误

    我正在尝试融化数据框 但出现了这个奇怪的错误 有什么想法吗 str zx7 data frame 519 obs of 5 variables calday new Date format 2011 01 03 2011 01 04 201
  • R在Windows平台Rstudio上打印data.frames中的UTF-8代码

    当数据框中存在UTF 8字符时 将无法正常显示 例如 以下内容是正确的 gt U6731 1 朱 但是当我将其放入数据框中并打印出来时 它是 gt data frame x U6731 x 1
  • 为什么这个 R ggplot2 代码会显示一个空白的显示设备?

    虽然 SO 通常不用于帮助解决错误 但这个显示了特别简单且特别烦人的行为 如果你是一个ggplot2用户 您可以在 10 秒或更短的时间内重现它 正如这个 GitHub 问题 ggplot gtable 创建空白显示 https githu
  • dplyr:连接中的 NSE (by)

    我很难弄清楚如何使用 dplyr left join 和 NSE 连接两个表 问题是我无法为 by 提供正确的值 我想我现在已经找到了解决方案 但感觉我正在以一种额外复杂的方式来做 因此 如果您知道更简单 更优雅的解决方案 请告诉我 这就是
  • 增加雷达图中长轴标签的空间

    我想创建一个雷达图ggirahExtra ggRadar 问题是我的标签很长并且被剪掉了 我想我可以通过添加在标签和绘图之间创建更多空间margin margin 0 0 2 0 cm to element text in axis tex
  • R中IF函数的使用

    我正在短跑ifR 中的函数 但收到以下警告消息 In if runif 50 0 1 lt 0 69 the condition has length gt 1 and only the first element will be used
  • 要在子集中显示的非数字条目的维恩图

    我有以下数据框 SET1 SET2 SET3 par1 par2 par1 par2 par3 par2 par3 par4 par5 我想制作一个维恩图 其中所有这些 parX 元素都显示在各自的子集中 即作为标签 而不仅仅是重叠元素的数
  • 如何根据 ggplot2 中的汇总数据创建堆积条形图

    我正在尝试使用 ggplot 2 创建堆积条形图 我的宽格式数据如下所示 每个单元格中的数字是响应的频率 activity yes no dontknow Social events 27 3 3 Academic skills works
  • 如何为自定义 S3 类实现提取/取子集 ([ [<-, [[ [[<-)] 函数?

    我有一个自定义的 S3 类foo 它在正常的基础上添加了一些自定义行为data frame foo object lt data frame class foo object lt c foo data frame 对于这个类 还应该有一个
  • 平滑连续 2D 点

    UPDATE 感谢 user20650和 李哲源Zheyuan Li 这是我想出的解决方案 Example data set df 3600 observations points Create a vector of the cumula
  • 如何在Rstudio中快速给几个单词加上引号?

    如何将 MI ID FL 转换为 MI ID FL 而无需键入每个双引号 Hmisc 包有一个函数 Cs 它将评估逗号分隔的文本是否带有引号 Cs MI ID FL becomes MI ID FL
  • 扩展数据框以使其具有与原始行中两列的范围一样多的行[重复]

    这个问题在这里已经有答案了 我有一个数据框如下 structure list symbol c u n v i a start c 9L 6L 10L 8L 7L end c 14L 15L 12L 13L 11L Names c symb
  • R:单纯形错误:在下标赋值中不允许使用 NA

    对于以下具有目标函数和约束的最小化 boot simplex返回错误 Error in tab pr lt tab pr tab pr pc pv o tab pr NAs are not allowed in subscripted as
  • R - 基于列名称的子集

    我的数据框有超过 120 列 变量 我想根据列名称创建子集 例如 我想创建一个子集 其中列名称包含字符串 心情 这可能吗 我一般用 SubData lt myData grep whatIWant colnames myData 我很清楚
  • 计算 R 行中的非零条目数

    我有以下类型的数据 mode1 mode2 mode3 1 8 1 0 2 0 0 0 3 6 5 4 4 1 2 3 5 1 1 1 数据使用dput structure list mode1 c 8L 0L 6L 1L 1L mode2
  • 我如何查看 quantmod 包中所有可用的数据系列?

    如何显示可用的所有报价 数据系列的列表 例如使用雅虎的 getSymbols 我不知道有什么办法 TTR包有一个功能 stockSymbols 下载 NYSE AMEX 和 NASDAQ 的所有当前代码 它试图将它们采用雅虎可接受的格式 但
  • 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口?

    有没有什么方法可以为 r闪亮数据表中的每个单元格获取工具提示 有很多方法可以获取悬停行或列 但我找不到一种方法来获取行和列索引并为每个单元格显示不同的悬停工具提示 任何人都可以修改以下代码吗 library shiny library DT
  • 更改绘图区域背景颜色

    我想使用我们公司的颜色在 R 中制作一个图表 这意味着所有图表的背景应为浅蓝色 但绘图区域应为白色 我正在寻找答案 发现绘制一个矩形就可以完成这项工作 几乎 然而 绘图区域现在是白色的 并且图形不再可见 这可能吗 getSymbols SP
  • 如何使用plotmath更新ggplot图例标签

    我正在尝试更新ggplot要使用的图例标签plotmath但是 当我这样做时 它将之前组合的图例分成两部分 通过一个例子可能更容易理解 test data and the default plot gives the correct col
  • 斯皮尔曼相关性和联系

    我正在一小组配对排名上计算斯皮尔曼的 rho 斯皮尔曼因处理领带不当而闻名 例如 取2组8个排名 即使两组中有6个是平局 相关性仍然很高 gt cor test c 1 2 3 4 5 6 7 8 c 0 0 0 0 0 0 7 8 met

随机推荐