ggplot2:从 x 轴日期中删除周末和节假日的空白

2023-11-22

在 ggplot2 中绘制股票数据且 x 轴包含周末和节假日的间隙时遇到问题。this帖子非常有帮助,但是在尝试使用有序因子时我遇到了各种问题。

library(xts)
library(grid)
library(dplyr)
library(scales)
library(bdscale)
library(ggplot2)
library(quantmod)

getSymbols("SPY", from = Sys.Date() - 1460, to = Sys.Date(), adjust = TRUE, auto.assign = TRUE)

input <- data.frame(SPY["2015/"])
names(input) <- c("Open", "High", "Low", "Close", "Volume", "Adjusted")

# i've tried changing rownames() to index(), and the plot looks good, but the x-axis is inaccurate
# i've also tried as.factor()
xaxis <- as.Date(rownames(input)) 
input$xaxis <- xaxis

p <- ggplot(input)
p <- p + geom_segment(aes(x = xaxis, xend = xaxis, y = Low, yend = High), size = 0.50)           # body
p <- p + geom_segment(aes(x = xaxis - 0.4, xend = xaxis, y = Open, yend = Open), size = 0.90)    # open
p <- p + geom_segment(aes(x = xaxis, xend = xaxis + 0.4, y = Close, yend = Close), size = 0.90)  # close
p <- p + scale_y_continuous(scale_y_log10())
p + ggtitle("SPY: 2015")

enter image description here

The plot above (sans red boxes) is generated with the above code segment. And the following charts are some of the issues when attempting some solutions. First, if I try using the data frame's index, I will generate I nice looking graph, but the x-axis is inaccurate; the data currently ends in October, but in the plot below it ends in July: enter image description here

xaxis <- as.Date(index(input))

Second, if I try coercing the rownames to an ordered factor, I lose my horizontal tick data (representing the open and the close).
enter image description here

xaxis <- factor(rownames(input), ordered = TRUE) 

如果我使用 bdscale 包,也会出现删除水平刻度的相同问题,但网格线更清晰:

enter image description here

p <- p + scale_x_bd(business.dates = xaxis)

如果您想使用bdscale为此,只需告诉它使用更多网格线:

ggplot(input) + 
  geom_segment(aes(x = xaxis, xend = xaxis, y = Low, yend = High), size = 0.50) +           # body 
  geom_segment(aes(x = xaxis - 0.4, xend = xaxis, y = Open, yend = Open), size = 0.90) +    # open
  geom_segment(aes(x = xaxis, xend = xaxis + 0.4, y = Close, yend = Close), size = 0.90)  + # close
  ggtitle("SPY: 2015") +
  xlab('') + ylab('') +
  scale_x_bd(business.dates=xaxis, max.major.breaks=10, labels=date_format("%b '%y")) # <==== !!!!

enter image description here

它应该将十月放在那里的轴上,但它并不那么聪明。呜呜呜。欢迎拉请求!

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

ggplot2:从 x 轴日期中删除周末和节假日的空白 的相关文章

  • R 带有列和行的分面 qqplots

    我需要使用按行和列的构面创建 qqplot 我了解如何用列和行绘制分面图 但我不确定如何设置我的数据 最终 我想按列和行对数据集进行分组 然后按升序对 建模 结果和 观察到 结果进行排序 同时添加带有 行 组的列和带有 列 组的列 我一直在
  • 关于子组的新列和另一列中的百分比范围

    我有一个如下所示的示例 df df test lt data frame Group Name c Group1 Group2 Group1 Group2 Group2 Group2 Group1 Sub group name c A A
  • 将文件夹中的多个 csv 文件读取到 R 中的单个数据帧中[重复]

    这个问题在这里已经有答案了 我有一个包含 332 个 csv 文件的文件夹 文件名称如下 001 csv 002 csv 003 csv 330 csv 331 csv 332 csv 所有文件都具有相同数量的变量和相同的格式 我需要读取一
  • mlogit:需要 TRUE/FALSE 时缺少值

    我有来自离散选择实验 DCE 的数据 该实验研究了来自不同行业的个人的招聘偏好 我已经格式化为长格式 我想使用 mlogit 进行建模 我已导出数据 并且可以使用 asclogit 命令在 Stata 中成功运行模型 但在 R 中运行时遇到
  • 根据 R 中的字符串模式选择行

    假设我有以下数据 df lt data frame name c TO for Turnover for people HC people Hello world beenie man apple pears TO is number c
  • 行方向变异的有效方法

    我有两个数据框 dfUsers and purchases使用以下代码生成 set seed 1 library data table dfUsers lt data table user letters 1 5 startDate sam
  • R正则表达式获取第二个下划线之前的所有文本

    s lt 1 343 43Hello 2 323 14 fdh 99H 在 R 中 我想使用正则表达式来获取第二个下划线之前的子字符串 如何使用一个正则表达式来完成此操作 另一种方法是用 分割 然后粘贴前两个 一些东西 paste sapp
  • 在 R 的替换命令中取消引用字符串

    我想知道是否可以unquote通过替换命令传递给表达式的字符串 具体来说 我使用 dplyr 从数据框中过滤和选择 gt w subject sex response 1 1 M 19 08 2 2 M 16 46 6 6 M 23 60
  • R,igraph,是否可以用图案填充顶点

    使用 R 和 igraph 绘制图形 我使用颜色来标记顶点类型 请参阅下面的代码 是否可以用图案而不是颜色填充顶点 以便在以彩色和黑白查看时可以区分节点类型 我需要 4 种独特的颜色 图案 colorbrewer 中唯一适合的调色板是这个
  • Shiny :针对所有错误显示一条消息

    我在 R 的 Shiny 中有一个应用程序 我想处理消息 以便用户看不到发生了什么错误 我知道通过 tags style type text css shiny output error visibility hidden shiny ou
  • 使用 R 下载压缩数据文件、提取并导入 .csv

    我正在尝试使用以下方法从网页下载并提取 csv 文件R 这个问题是重复的使用 R 下载压缩数据文件 提取和导入数据 https stackoverflow com questions 3053833 using r to download
  • 使用 R Markdown 文档作为函数源

    我正在研究 R Markdown 来记录我经常使用的功能 我会将它们放入 R Markdown 文件中以记录它们 然后如果我几个月后回来查看它 就能够阅读我在函数背后的想法 我的问题是 如果我开始一个新的 R 项目 是否可以获取 r mar
  • 如何不显示 ggplot 轴上的所有标签?

    I m trying to using ggplot2 to plot this But as you can see on the x axis you can t read anything 那么如何在 x 轴上显示每 10 年的值呢
  • 如何用js获取一个月的4个星期一?

    我正在构建一个图表 其中 x 轴应该是一个月的四个星期 我只想显示该月的四个星期一 我已经有了currentMonth和currentYear变量 而且我知道如何获取该月的第一天 我所需要的只是将一个月的四个星期一放入数组中 所有这些都在同
  • 在zooreg时间序列中查找非唯一索引条目时遇到问题

    我有几年的数据正在尝试将其转化为动物园对象 Dropbox 上的 csv https www dropbox com sh vg8w8pt16e0v3xs AABKtWqDkPu9JVKpwBXO36VOa dl 0 一旦数据被强制转换为动
  • R 无法回忆起内存中的对象

    我正在构建一个包含多个步骤的函数 其中每个步骤都会创建一个对象 某个步骤失败 temp3 并且无法找到前面的步骤对象 错误 未找到对象 temp2 我不知道为什么 我有类似的函数 遵循完全相同的结构 每个步骤都遵循先前创建的对象 在函数内
  • 构造奎因(自我复制功能)

    有没有人构建过 quine 生成自己源文本的副本作为其完整输出的程序 http www nyx net gthompso quine htm http www nyx net gthompso quine htm 在 R 中 quine 标
  • 两个日期之间间隔 15 分钟 javascript

    问题 我需要将两个日期 时间戳之间的所有 15 分钟时隙 日期格式 2016 08 10 16 00 00 创建为 HH mm 格式的数组 其中分钟限制为 00 15 30 45 示例 中午 12 30 到下午 2 30 将 gt 12 3
  • R中data.frame(列表)的列平均值

    Data https i stack imgur com ZYsmv jpg 请 我需要计算此 data frame 中维吉尼亚币 Sepal Length 列的平均值 Sepal Length Sepal Width Petal Leng
  • 如何在闪亮的observeEvent中监听多个事件表达式

    我想要两个不同的事件触发观察者 有人建议here https stackoverflow com questions 34731975 how to listen for more than one event expression wit

随机推荐

  • Composer install -n --ignore-platform-reqs 不忽略 PHP 扩展

    我们有运行的循环构建composer install n ignore platform reqs no dev但这不再忽视平台要求 这是我在圈子日志中看到的 这 ignore platform reqs显然不起作用 有什么想法吗 Your
  • Jersey:“找不到语法元素”是什么意思?

    将 Jersey 从版本 1 15 升级到 1 17 后 它开始记录以下消息 Apr 2 2013 5 13 06 PM com sun jersey server wadl generators AbstractWadlGenerator
  • Django Rest Framework 请求对AllowAny 设置进行身份验证

    我创建了一个JWT 授权应用程序的后端 登录 注销 令牌检索和刷新都工作正常 符合预期 今天早上我添加了一个注册视图 它抛出了通常的情况 detail Authentication credentials were not provided
  • 在Java中获取当前年份的整数值

    我需要将 Java 中的当前年份确定为整数 我可以用java util Date 但它已被弃用 对于 Java 8 及以上版本 int year Year now getValue 对于旧版本的 Java int year Calendar
  • 如何获取从 ButtonGroup 中选择哪个 JRadioButton

    我有一个 Swing 应用程序 其中包含表单上的单选按钮 我有ButtonGroup 但是 查看可用的方法 我似乎无法获取所选的名称JRadioButton 到目前为止 我可以说的是 从 ButtonGroup 中 我可以执行getSele
  • android:字符串格式指定粗体

    我有一个字符串定义在string xml like
  • 为什么我们要在汇编中使用 CPU 寄存器,而不是直接使用内存呢?

    我有一个关于装配的基本问题 如果算术运算也可以在内存上运行 为什么我们还要费心只在寄存器上进行算术运算呢 例如 以下两个原因 本质上 导致计算出相同的值作为答案 片段1 data var dd 00000400h code Start ad
  • Android 音频 - 流式正弦音发生器奇怪的行为

    第一次在这里发布海报 我通常喜欢自己找到答案 无论是通过研究还是反复试验 但我在这里遇到了困难 我正在尝试做的事情 我正在构建一个简单的 Android 音频合成器 现在 我只是实时播放正弦音 用户界面中的滑块会随着用户的调整而改变音调的频
  • window.requestFileSystem() 函数的简单示例

    我有下一个问题 我尝试使用window requestFileSystem Chrome 中可以使用 但失败 看看我的步骤 1 I added allow file access from file flag to Chrome see i
  • 如何使用批处理脚本 ping 多个服务器并返回 IP 地址和主机名?

    所以我必须使用仅批量为了这 基本上 服务器主机名都列在 txt 文件中 我使用以下代码对所有服务器执行 ping 操作并将其结果显示在 txt 文件中 For f i in testservers txt do ping n 1 i gt
  • 我无法使用 knit 生成 \label{fig:mwe-plot}

    我在生成时遇到问题 label 对于使用 knitr 进行绘图时 Rmd文件到一个 md文件通过knitr 然后转换为 pdf via pandoc 我的 MWE Rmd包括如下 r Setup include FALSE results
  • 在 WebBrowser 控件中显示来自流的 PDF

    如何显示 PDF 文档MemoryStream在一个WebBrowser控制 我四处搜索 发现我可以使用以下命令简单地导航到 PDF 文件 webBrowser1 Navigate C Temp ExportedPDF pdf 不过 我想避
  • 将.jar文件导入Scala环境

    即使读完后 Scala jar 文件的问题 我还是有点迷茫 我正在尝试将一些包导入到我的 Scala 文件中 即使添加到类路径后解释器也无法识别它们 一个例子 我有进口声明 import org json4s 我从这里下载了 jar htt
  • Flask 会话忘记请求之间的条目

    我正在使用最新的 Flask Werkzeug Flask 0 9 客户端会话来保存请求之间的信息 会话未设置为持久 因为我可以在浏览器关闭时删除 cookie 我的问题如下 我使用一些服务器端代码来用条目填充 Flask 会话变量 之后
  • 什么是谓词委托以及应该在哪里使用它?

    你能给我解释一下吗 什么是谓词委托 我们应该在哪里使用谓词 使用谓词时有哪些最佳实践 描述性源代码将不胜感激 谓词是一个返回的函数true or false 谓词委托是对谓词的引用 所以基本上谓词委托是对返回的函数的引用true or fa
  • 捆绑来自 Xamarin 的预构建 Realm 文件

    我看过一些 SO 帖子 详细介绍了如何将预构建的 Realm 文件与 iOS Obj c swift 和 Android Java 捆绑在一起 但我找不到任何有关从 PCL 或共享项目中与 Xamarin 捆绑的信息 这可能吗 我相信 由于
  • 使用 Spark 按行和列扩展 JSON 字符串

    我是 Spark 新手 正在使用 JSON 但我在做一些相当简单的事情时遇到了困难 我认为 我尝试过使用类似问题的部分解决方案 但不太正确 我目前有一个 Spark 数据框 其中有几列代表变量 每行都是变量值的唯一组合 然后 我有一个应用于
  • 本地报告rdlc到pdf非常慢

    有没有什么方法可以提高本地报告的性能 如果没有 甚至有替代方案吗 当前将 rdlc 转换为 pdf 的代码如下 一直在寻找解决方案相当长一段时间 但普遍的共识似乎是它只是缓慢 感谢您的帮助 public byte genReportByte
  • 如何以编程方式检测 SONY - Stamina 设备能量配置文件是否开启

    我想通知用户 如果他拥有启用了 STAMINE 能量配置文件的索尼 Android 手机 我的应用程序将无法正常工作 此配置文件正在阻止 AlarmManager 并且设备在我需要时不会被唤醒 目前 没有官方方法来检测是否选择了 STAMI
  • ggplot2:从 x 轴日期中删除周末和节假日的空白

    在 ggplot2 中绘制股票数据且 x 轴包含周末和节假日的间隙时遇到问题 this帖子非常有帮助 但是在尝试使用有序因子时我遇到了各种问题 library xts library grid library dplyr library s