一张图表中的条形图和折线图,并在 ggplot2 下带有图例

2023-12-01

我想将两个独立但相关系列的条形图和线图放在带有图例的同一张图表上(条形图是季度增长,线图是年度增长)。

我目前使用宽格式的 data.frame 和如下代码来完成此操作:

p <- ggplot() +
    geom_bar(df, aes(x=Date, y=quarterly), colour='blue') +
    geom_line(df, aes(x=Date, y=annual), colour='red')

但我不知道如何添加一个图例,其中有一条标有“年度增长”的红线;和一个标记为“季度增长”的蓝色方块。

或者,我无法弄清楚如何使用长格式 data.frame 为不同系列提供不同的几何图形。

UPDATE:

下面的示例代码帮助我找到了解决方案,但有一个非常丑陋的重复图例。仍在寻找完整的解决方案...这种方法基于将数据置于长形式,然后绘制数据的子集...

library(ggplot2)
library(reshape)
library(plyr)
library(scales)

### --- make a fake data set
x <- rep(as.Date('2012-01-01'), 24) + (1:24)*30
ybar <- 1:24
yline <- ybar + 1

df <- data.frame(x=x, ybar=ybar, yline=yline)
molten <- melt(df, id.vars='x', measure.vars=c('ybar', 'yline'))
molten$line <- ifelse(molten$variable=='yline', TRUE, FALSE)
molten$bar <- ifelse(molten$variable=='ybar', TRUE, FALSE)

### --- subset the data set
df.line  <- subset(molten, line==TRUE)
df.bar   <- subset(molten, bar==TRUE)

### --- plot it
p <- ggplot() +
geom_bar(data=df.bar, mapping=aes(x=x, y=value, fill=variable, colour=variable),
    stat='identity', position='dodge') +
geom_line(data=df.line, mapping=aes(x=x, y=value, colour=variable)) +

opts(title="Test Plot", legend.position="right") 

ggsave(p, width=5, height=3, filename='plot.png', dpi=150)

还有一个示例情节...

enter image description here


通过使用subsetgeoms 的参数。

> x=1:10;df=data.frame(x=x,y=x+1,z=x+2)
> ggplot(melt(df),
    aes(x,value,color=variable,fill=variable))+
  geom_bar(subset=.(variable=="y"),stat="identity")+
  geom_line(subset=.(variable=="z"))

enter image description here

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

一张图表中的条形图和折线图,并在 ggplot2 下带有图例 的相关文章

  • 从 R 主题模型中的 DocumentTermMatrix 中删除空文档?

    我正在使用 R 中的 topicmodels 包进行主题建模 我正在创建一个 Corpus 对象 进行一些基本的预处理 然后创建一个 DocumentTermMatrix corpus lt Corpus VectorSource vec
  • 根据值的运行总计创建组

    我的数据在一个变量 Y 上是唯一的 另一个变量 Z 告诉我每个 Y 中有多少人 我的问题是我想从这些 Y 和 Z 创建 45 人的组 我的意思是 每当运行总计Z 达到 45 创建一组 然后代码继续创建下一组 我的数据看起来像这样 ID X
  • 尽管提供了群落矩阵,纯素食 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
  • R比例置信区间因子

    我正在尝试总结家庭调查的数据 因此我的大部分数据都是分类 因子 数据 我想用对某些问题的回答频率图来总结它 例如 回答某些问题的家庭百分比的条形图 误差线显示置信区间 我发现了这个很棒的教程 我认为它是我祈祷的答案 http www coo
  • ggplot 中跨组的连续线

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

    我从下表中绘制了一个图表 BoatPhs fit se lower upper 1 Before 3 685875 0 3287521 3 038621 4 333130 2 After0 20NTA 3 317189 0 6254079
  • 使用 ggplotly(ggplot2 withplotly)时可以去掉注释中的跟踪标签吗?

    使用ggplotly时是否可以删除注释中的跟踪标签 例如 library ggplot2 library plotly g lt ggplot iris aes Sepal Width Sepal Length geom point ann
  • 如何用日语创建 ggplot2 标题?

    我正在准备日语演示文稿 并希望图像的标题和图例名称为日语 我可以让文本在 RStudio 中渲染得很好 但是当渲染图像时 日语字符仅显示为方框 x 10 10 y x x df data frame x y ggplot df aes x
  • 使用 SparkR 1.5 从 RStudio 中的 hdfs 读取大文件(纯文本、xml、json、csv)的选项

    我是 Spark 新手 想知道除了下面的选项之外是否还有其他选项可以使用 SparkR 从 RStudio 读取存储在 hdfs 中的数据 或者我是否正确使用它们 数据可以是任何类型 纯文本 csv json xml 或任何包含关系表的数据
  • 在ggplot2中创建部分虚线

    我正在 R 中创建一个图 并且需要创建一条线 其中某些值是投影 投影用虚线表示 这是代码 df data frame date c rep 2008 2013 by 1 value c 303 407 538 696 881 1094 gg
  • 为什么我在 ddply 中看到“错误:length(rows) == 1 is not TRUE”?

    我有一个数据框 比如工资单 例如 payroll lt read table text AgencyName Rate PayBasis Status NumRate HousingAuthority 26 843 00 Annual Fu
  • R中有字典功能吗

    有没有办法在 R 中创建一个 字典 使其具有对 一些效果 x dictionary c Hi Why water c 1 5 4 x Why 5 我问这个是因为我实际上正在寻找两个分类变量函数 所以如果 x dictionary c a b
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 如何制作一连串的ggplots并在它们之间绘制箭头?

    对于一个项目 我需要绘制一些图并在它们之间放置箭头作为序列的指示 我想知道我是否可以用 ggplot 来做到这一点 是否可以使用 ggplot2 绘制一个干净的大箭头并将其添加到最终的多重图中 作为示例 我使用此代码来绘制绘图 librar
  • 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
  • 如何处理包内部的 R 数据?

    我正在开发的 R 包需要多个 R 数据对象 例如预先计算的模型和参数 目前 我将包的 数据 目录中的每个对象放在单独的 RData 文件中 使用该包时 用户可以使用 数据 功能将这些对象附加到他们的环境中 我想要的行为是 在加载包时 数据对
  • DT数据表中的列对齐

    In my shiny我正在使用的应用程序datatable函数来自DT库构建一个表格并希望将列居中对齐 我可以用formatStyle column textAlign center 但它只影响列体而不影响标题 我们必须设置columnD
  • R - 如何为数据范围内的缺失值绘制条形图零点?

    假设我对 1 到 10 之间的整数的 200 个点有 10 个观察值 mysample sample rep seq 1 10 20 10 我想用条形图绘制它 barplot table mysample barplot https i s

随机推荐

  • 使用 JavaScript 解析 XML [重复]

    这个问题在这里已经有答案了 我需要能够使用 JavaScript 解析 XML XML 将位于变量中 我不想使用 jQuery 或其他框架 我看过这个 XML gt jQuery 读取 我从你的猜测最后一个问题在此之前 20 分钟询问 您正
  • 使用tensorflow时Python内核死掉

    我在 Windows 7 操作系统中的 anaconda 4 3 1 64 位 内的 python 3 5 2 下使用tensorflow 仅限 CPU 版本 当我运行以下代码时 python内核死掉了 无法重新启动 出现一些错误 但没有错
  • 将屏幕截图保存为 R Selenium 中的变量

    我正在尝试将 Selenium 的屏幕截图存储到变量中 以便我可以计算出它的高度 library RSelenium library magick server lt remoteDriver remoteServerAddr localh
  • 用 Rust 编写不动点函数

    我刚刚开始 Rust 教程 并以使用递归的此类代码结束 extern crate rand use std io use rand Rng use std cmp Ordering use std str FromStr use std f
  • 基本 CSS 悬停图像交换?

    我是网络开发的超级初学者 我有一个关于尝试 交换 两个图像的问题 我已经编写了 CSS 和标记 但由于某种原因它似乎不起作用 当将鼠标悬停在第一个图像上时 应该交换的第二个图像只是位于页面上第一个图像的顶部 CSS home margin
  • 四舍五入的奇怪之处——“100”有什么特别之处? [复制]

    这个问题在这里已经有答案了 有人对 haskell 中这种奇怪的舍入有解释吗 GHCi 版本 7 2 1 一切看起来都很好 除非我乘以 100 Main gt 1 1 1 1 Main gt 1 1 10 11 0 Main gt 1 1
  • 如何将 HTML 表中的数据插入到 mysql 数据库

    我有一个HTML表格与信息 现在我可以add rows and delete带有使用 javascript 的按钮的行 我还可以使用以下命令直接将信息添加到数据库中Add Rows按钮 然后使用以下命令从数据库中删除数据删除行按钮 但我不想
  • Linq if/else 条件?

    我知道这可能是一个新手问题 有没有办法根据布尔值选择不同的搜索条件 稍后在代码中 我想循环访问该对象 alDisabledPrograms 我知道 if else 不正确 我把它放在那里是为了表明我希望如何处理它 我尝试将其放入更大的 if
  • rijndael 加密 - 仅解密部分字符串

    只有部分字符串被解密 我认为这与我的编码有关 发生的情况如下 string s The brown fox jumped over the green frog string k urieurut string enc EncryptStr
  • 在 Windows Phone 7 上将图像转换为字节数组 没有 System.Drawing Dll 还有其他方法吗?

    Byte result Byte new ImageConverter ConvertTo img1 typeof Byte I cant use Image Converter add Image Class Drawing dll Me
  • 从名称空间生成 UUID?

    尝试根据 2 个唯一字符串生成客户端 ID 这最终应该与服务器中生成的 UUID 相同 来自相同的 Ids 对于 Javascript 它看起来像这样 uuidv5 id1 id2 uuidv5 DNS 似乎找不到在 Swift 上生成它的
  • preg_quote() 的 Ruby 等价物是什么?

    在 PHP 中你需要使用preg quote 转义字符串中在正则表达式中具有特定含义的所有字符 允许 例如 preg match 搜索那些特殊字符 以下代码在 Ruby 中的等价物是什么 The content of this variab
  • 使用数据注释对依赖属性进行自定义模型验证

    从现在开始我已经使用了优秀的流利验证库来验证我的模型类 在网络应用程序中 我将它与jquery 验证插件也可以执行客户端验证 一个缺点是许多验证逻辑在客户端重复 并且不再集中在一个地方 出于这个原因 我正在寻找替代方案 有many例子出来t
  • 使用objective-c(libz.dylib)从pdf中提取文本

    我已在视图控制器类中导入 pdf h 文件并尝试调用 NSString outPutString convertPDF pathToPdfFile 但在构建时它给了我链接器错误 convertPDF refrenced from Scrip
  • 按字母顺序对 Android 应用程序进行排序?

    我有以下代码 packageManager getPackageManager List
  • 为什么 CancellationTokenSource 会挂起应用程序

    这是挂起且永不结束的简单代码段 public static void Main using var cancellationTokenSource new CancellationTokenSource Console CancelKeyP
  • Android - 支持 0 台设备

    我在更新现有应用程序时遇到问题 apk 上传工作正常 但 Google Play 表示支持 0 台设备 我一直在寻找其他一些帖子并尝试修改我的清单 但没有成功 该应用程序是使用 Ionic 框架开发的 目前我已经成功上传了20多个旧版本 然
  • 对于不返回 void 的 C++ 函数,是否必须使用 return 语句?

    我的 Herb Schildt 关于 C 的书说 在 C 中 如果一个函数被声明为返回一个值 那么它must返回一个值 但是 如果我编写一个具有非 void 返回类型的函数并且不返回任何内容 编译器会发出警告而不是错误 控制到达非 void
  • 根据某些条件从 Vec 中删除元素[重复]

    这个问题在这里已经有答案了 我的代码如下所示 struct Bar i i32 struct Foo v Vec
  • 一张图表中的条形图和折线图,并在 ggplot2 下带有图例

    我想将两个独立但相关系列的条形图和线图放在带有图例的同一张图表上 条形图是季度增长 线图是年度增长 我目前使用宽格式的 data frame 和如下代码来完成此操作 p lt ggplot geom bar df aes x Date y