【问题标题】:geom_line not showing line [duplicate]geom_line 不显示行[重复]
【发布时间】:2018-10-08 04:23:01
【问题描述】:

我正在尝试使用 ggplot 包中的 geom_line 绘制一条线。该行应该是交互式的,并且取决于选定时间序列上的选定状态和宏变量。虽然其中大部分似乎运行良好,但我似乎无法让 geom_line() 绘制任何内容。

我已尝试对数据进行分组,并为“年份”变量使用 as.numeric() 函数,但似乎没有任何效果。

服务器:

server <- function(input, output){


  output$plot1 <- renderPlot({

 ggplot(data = filter(c1, state == input$state1), 
        aes_string(x = as.numeric("year"), y = input$macroVar, group = 1)) +
   geom_line() +
   scale_x_continuous(limits = input$years) +
   labs(title = paste(col_alias(input$state1)),
        x = paste("Year"),
        y = paste(col_alias2(input$macroVar))) +
        theme_bw()})
  output$plot2 <- renderPlot({

ggplot(data = filter(c1, state == input$state2),  
       aes_string(x = as.numeric("year"), y = input$macroVar, group = 1)) +
  geom_line() +
  scale_x_continuous(limits = input$years) +
  labs(title = paste(col_alias(input$state2)),
       x = paste("Year"),
       y = paste(col_alias2(input$macroVar))) +
      theme_bw() })  
}   

shinyApp(ui = ui, server = server)

【问题讨论】:

  • 嘿,欢迎来到堆栈溢出!直截了当,这让我觉得这是一个 ggplot 问题,而不是一个 R Shiny 问题。我们要求最少的可重现示例。这看起来不是最小的如果问​​题是 ggplot 不会创建一条线,请首先尝试在 Shiny 实例之外进行调试。一旦你尝试过,这里的人会更鼓舞人心地帮助你。
  • 此外,由于我们没有您的数据c1,即使没有shiny,这是不可重现的。当我们建议它应该是可重现的 时,您对代码有一个良好的开端,而不是数据。参考:stackoverflow.com/questions/5963269stackoverflow.com/help/mcvestackoverflow.com/tags/r/info

标签: r ggplot2 shiny


【解决方案1】:

您不能在aes_string 中混合使用字符串和非字符串调用。您可以使用as.numeric("year") 执行此操作,将as.numeric() 函数与字符串列名混合。看看这个可重现的例子:

# does not work
ggplot(mtcars, aes_string('mpg', as.factor('cyl'))) +
  geom_point()

# works
ggplot(mtcars, aes_string('mpg', 'as.factor(cyl)')) +
  geom_point()

因此,您可以将代码更改为 'as.numeric(year)' 作为快速修复。我也不太喜欢这样,aes_string 在你开始将命令放在引号中时会变得丑陋。相反,我建议 (a) 通过将您的 year 列转换为数字 before 绘图来解决上游问题,或者 (b) 使用现代技术更新您的代码。请参阅?aes 帮助页面上的准引用部分,帮助页面底部提供示例,链接的dplyr 小插图中提供更多示例。

如果这不能解决您的问题或您需要其他帮助,请制作一个可重现的示例并将其包含在您的问题中。

【讨论】:

    猜你喜欢
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 2017-10-12
    • 2018-07-22
    相关资源
    最近更新 更多