首页 > 解决方案 > 关于在 R 闪亮中添加图例

问题描述

这是我在获得一个名为 full 的表后的部分代码,

full <- full %>% pivot_longer(cols = -num)
    p <- ggplot(full, aes(x=num,y=value,group=name,color=name,linetype=name))+
      geom_line()
    
    if(input$po == c(1,2) | input$po == c(2,1) ){
       p <- p + 
        scale_color_manual(values = c(Policy1='red',Policy1reuse ='red', Policy2='blue',Policy2reuse ='blue'))+
        scale_linetype_manual(values = c(Policy1='solid',Policy1reuse ='dashed', Policy2='solid',Policy2reuse ='dashed'))
      }
    else if(input$po == c(1,3) | input$po == c(3,1) ){
      p <- p + 
        scale_color_manual(values = c(Policy3='green',Policy3reuse ='green', Policy1='blue',Policy1reuse ='blue'))+
        scale_linetype_manual(values = c(Policy3='solid',Policy3reuse ='dashed', Policy1='solid',Policy1reuse ='dashed'))}

我在这里做一个渲染图,input$po是用户在 a 中输入的数字selectInput,假设我输入 1,2 或 2,1 或 3,1,它工作正常,例如如果我输入 3,1: 这是表格: 在此处输入图像描述

这是输入和绘图: 但是如果我输入 1,3 会出现错误: 在此处输入图像描述 在此处输入图像描述在此处输入图像描述 在此处输入图像描述

我不明白为什么会发生这种情况,如果我删除1,2 和 2,1 条件部分的scalar_color_manualand scalar_linetype_manual,1,3 就会解决!但不是我想要的线型和颜色。如果我在 if 中放入 1,3 和 3,1,在 else if 中放入 1,2 2,1,那么 1,3 会正常工作,但 1,2 会出现此错误,我该如何解决。感谢您的任何帮助。

标签: rshinylegendshiny-serverlegend-properties

解决方案


推荐阅读