簡體   English   中英

底紋庫存/日期 plot 基於指標

[英]Shading stock/date plot based on indicator

我的問題是我有一些股票價格(數字)是根據日期(字符串)繪制的。 現在我有一個指示變量。 我想為指標為 1 的那些日期繪制圖表上的區域,而不是為 0 時繪制陰影。我在 R 中編程。我知道如何在預先指定的時間間隔內執行此操作,例如 2000-01-01到 2001-01-01。 但是我有很多“間隔”,其中指標變量顯示 1,我不想自己計算它們。 關於如何克服這個障礙的任何想法? 如果可能的話,我希望它能通過 ggplot2。

我的數據示例:

data <- data.frame(
   date = as.Date(c("2001-01-01", "2001-01-02", "2001-01-03",
   "2001-01-04","2001-01-05","2001-01-06", "2001-01-07", 
   "2001-01-08","2001-01-09","2001-01-10")),
   price = c(623.3,515.2,611.0,729.0,843.25,623.3,515.2,611.0,729.0,843.25),
   indicator = c(1,1,1,0,0,0,1,1,1,0)
)

注意:我之前問過這個問題,但它被標記為重復。 我不這么認為,因為我找不到任何其他帖子可以真正回答我的問題。 我見過其他人有同樣的問題,但答案總是指定你自己的陰影范圍,這不是這里的目的。

答案是您需要使用數據來創建陰影背景區域。

library(ggplot2)

background_df <- data[data$indicator == 1,]
background_df$end <- background_df$date + lubridate::days(1)

ggplot(data, aes(date, price)) +
  geom_rect(ymin = -Inf, ymax = Inf, aes(xmin = date, xmax = end),
            data = background_df, fill = "deepskyblue4", alpha = 0.2) +
  geom_line(colour = "orange3") +
  geom_point() +
  theme_bw()

reprex package (v2.0.1) 創建於 2022-03-06

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM