ggplot2に在庫データをプロットしたり、週末や休日の空白が含まれているx軸をプロットしたりするときに問題が発生する。 this投稿は非常に役に立ちましたが、注文した要素を使用しようとするとさまざまな問題が発生します。ggplot2:x軸の日付から週末と休日の空き領域を削除する
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")
(サンセリフ赤四角)上記プロットは、上記のコードセグメントと生成されます。次の図は、いくつかのソリューションを試してみる際のいくつかの問題です。まず、データフレームのインデックスを使用しようとすると、私は見栄えの良いグラフを生成しますが、x軸は不正確です。データは現在、10月に終了したが、それ以下のプロットで7月に終了します。
xaxis <- as.Date(index(input))
第二に、私が注文した要因にrownamesを強要しようとした場合、私はオープンとを表す(私の横目盛りデータを失いますクローズ)。私は、パッケージbdscaleを使用する場合
xaxis <- factor(rownames(input), ordered = TRUE)
水平ダニを除去する同じ問題が起こりますが、グリッド線はきれいです:
p <- p + scale_x_bd(business.dates = xaxis)
、で生産X軸「(サンセリフ赤箱)上記のプロット」に関する不正確な何ですか? – shekeine
赤いボックスは、削除したいx軸のギャップを強調表示します。私は2番目のプロット(ギャップなし)のようなプロットを望みますが、最初のプロットのx軸は – jonnie
です。それで、問題は、休日や週末の自動識別です。作業日だけを保持する 'input'でしょうか? – shekeine