【问题标题】:Plot new points on a scatter plot in R在 R 中的散点图上绘制新点
【发布时间】:2021-10-29 08:00:51
【问题描述】:

如何将变量x得到的点插入到代码1生成的散点图中?

我正在输入两个代码:第一个代码生成散点图。第二个代码是我想插入到这个生成的散点图中的新点。如果可能,将球保留为红色以与第一个球区分开来。

非常感谢!

代码 1

library(dplyr)
library(tidyr)
library(lubridate)


data <- structure(
  list(Id=c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),
       date1 = c("2021-06-20","2021-06-20","2021-06-20","2021-06-20","2021-06-20",
                 "2021-06-20","2021-06-20","2021-06-20","2021-06-20","2021-06-20","2021-06-20",
                 "2021-06-20","2021-06-20","2021-06-20","2021-06-20","2021-06-20","2021-06-20",
                 "2021-06-20","2021-06-20","2021-06-20","2021-06-20"),
       date2 = c("2021-07-01","2021-07-01","2021-07-01","2021-07-01","2021-04-02",
                 "2021-04-02","2021-04-02","2021-04-02","2021-04-02","2021-04-02","2021-04-03",
                 "2021-04-03","2021-04-03","2021-04-03","2021-04-03","2021-04-08","2021-04-08",
                 "2021-04-09","2021-04-09","2021-04-10","2021-04-10"),
       Week= c("Thursday","Thursday","Thursday","Thursday","Friday","Friday","Friday","Friday",
               "Friday","Friday","Saturday","Saturday","Saturday","Saturday","Saturday","Thursday",
               "Thursday","Friday","Friday","Saturday","Saturday"),
       DTPE = c("Ho","Ho","Ho","Ho","","","","","","","","","","","","","","","","Ho","Ho"),
       D1 = c(8,1,9, 3,5,4,7,6,3,8,2,3,4,6,7,8,4,2,6,2,3), DR01 = c(4,1,4,3,3,4,3,6,3,7,2,3,4,6,7,8,4,2,6,7,3),
       DR02 = c(8,1,4,3,3,4,1,6,3,7,2,3,4,6,7,8,4,2,6,2,3), DR03 = c(7,5,4,3,3,4,1,5,3,3,2,3,4,6,7,8,4,2,6,4,3),
       DR04= c(4,5,6,7,3,2,7,4,2,1,2,3,4,6,7,8,4,2,6,4,3),DR05 = c(9,5,4,3,3,2,1,5,3,7,2,3,4,7,7,8,4,2,6,4,3),
       DR06 = c(5,4,3,3,6,2,1,9,3,7,2,3,4,7,7,8,4,2,6,4,3)),
  class = "data.frame", row.names = c(NA, -21L))


graph <- function(dt, dta = data) {
  
  dim_data<-dim(data)
  
  day<-c(seq.Date(from = as.Date(data$date2[1]), by = "days",
                  length = dim_data[1]
  )) 
  
  data_grouped <- data %>%
    mutate(across(starts_with("date"), as.Date)) %>%
    group_by(date2) %>%
    summarise(Id = first(Id),
              date1 = first(date1),
              Week = first(Week),
              DTPE = first(DTPE),
              D1 = sum(D1)) %>%
    select(Id,date1,date2,Week,DTPE,D1)

  data_grouped %>% 
    mutate(DTPE = na_if(DTPE, ""))

  df_OC<-subset(data_grouped, DTPE == "")
  ds_CO = df_OC %>% filter(weekdays(date2) %in% weekdays(as.Date(dt)))

  mean<-mean(ds_CO$D1)
  sd<-sd(ds_CO$D1)
  
  
  dta %>%
    filter(date2 == ymd(dt)) %>%
    summarize(across(starts_with("DR"), sum)) %>%
    pivot_longer(everything(), names_pattern = "DR(.+)", values_to = "val") %>%
    mutate(name = as.numeric(name)) %>%
    plot(xlab = "Days", ylab = "Number", xlim = c(0, 45),cex=1.5,cex.lab=1.5, 
         cex.axis=1.5, cex.main=2, cex.sub=2, lwd=2.5, ylim = c((min(.$val) %/% 10) * 15, (max(.$val) %/% 10 + 1) * 100))
  abline(h=mean, col='blue') +
    abline(h=(mean + sd), col='green',lty=2) 
  abline(h=(mean - sd), col='orange',lty=2)
  
}  
graph("2021-04-09",data)

代码 2

x <- subset(data, select = DR03:DR06)
x<-cbind(data, setNames(data$D1 - x, paste0(names(x), "_PV")))
x<-subset(x,select = DR03_PV:DR06_PV)

【问题讨论】:

  • xobject 我不明白它是如何对应于一些要添加的点,哪些值对应于 x 轴以及哪些值对应于 y 轴?

标签: r scatter-plot


【解决方案1】:

我认为y轴限制不够...通过使用graphics::points

library(graphics)

xx <- x %>%
  pivot_longer(everything(), names_pattern = "DR(.+)_PV", values_to = "val") %>%
  mutate(name = as.numeric(name))
graph("2021-04-09",dummy)
points(xx$name, xx$val, col = "red")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 2016-09-06
    • 2020-10-16
    • 2022-07-28
    • 2020-08-17
    相关资源
    最近更新 更多