您将如何在 Flexdashboard R 中生成多个散点图

How would you generate multiple scatterplot in Flexdashboard R

我有一个反应性输入,取值从 1 到 12,我想要实现的是使用一列作为 x 变量(总是),不同列作为 y 变量的图 - 下面的输入有效很好,但显然是硬编码的,所以如果我使用的变量少于或多于 6 个,绘图就不起作用

ggplotly(
  ggplot(table_plot(),aes(x=Streamer_Offset)) +
    geom_point(aes(y= CMP_1, color = "Source 1"))+
    geom_point(aes(y= CMP_2, color = "Source 2"))+
    geom_point(aes(y= CMP_3, color = "Source 3"))+
    geom_point(aes(y= CMP_4, color = "Source 4"))+
    geom_point(aes(y= CMP_5, color = "Source 5"))+
    geom_point(aes(y= CMP_6, color = "Source 6"))
  
)

我想做的是放置一个变量向量,例如 c(CMP_1,CMP_2.....) 等等,我尝试使用以下代码创建一个向量,然后传递给公式,但 ggplot 无法识别输入

  l <- colnames(table_plot())
  m <- c(paste0("~",l))
  d <- m[1:length(m)-1]
  as.formula(d)

此外,我尝试了 ggloop 和 renderPlot 或 renderPLotly 无法使用该函数,因此,我不确定原则上该怎么做,这应该不是一个非常复杂的过程。

如果你得到长格式的数据会更容易。试试这个 -

library(tidyverse)

ggplotly(
    ggplot(table_plot() %>% pivot_longer(cols = -Streamer_Offset),
           aes(x=Streamer_Offset, y = value, color = name))
)