首页 > 解决方案 > 您将如何在 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 无法使用该功能,因此,我不知道原则上该怎么做,这不应该是一个非常复杂的过程。

标签: rggplot2flexdashboard

解决方案


如果您以长格式获取数据会更容易。尝试这个 -

library(tidyverse)

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

推荐阅读