【问题标题】:Scatterplot and Shiny散点图和闪亮
【发布时间】:2019-03-05 22:54:22
【问题描述】:

我对闪亮和 ggplot 还是很陌生,所以我不确定是什么导致了这个问题,我之前已经发布了这个代码的不同问题但是我遇到了一个新问题......当我运行代码时我的情节没有出现,而是出现错误:警告:FUN 中的错误:找不到对象“total_pigs”。

无论我在 selectInput "x"function 中选择什么选项,我都会收到此错误。

我在 app.R 文件所在的同一目录中有一个单独的 CSV 文件。 selectInput(s) 匹配 CSV 中的列和行,我希望我的代码可以简单地读取存储在其中的数据,这将生成我的绘图点。

library(shiny)
library(ggplot2)
path <- file.path("eu_pigs.csv", stringsAsFactors = FALSE)
ui <- fluidPage(
titlePanel("Breeding Numbers 2016 - 2018 (pig)"),
sidebarLayout(
sidebarPanel(
selectInput(inputId = "x", 
          label = "Pig Breeds:", 
          choices = c("total_pigs", "female_breeding_herd", 
                      "in_pig_sows", "in_pig_gifts", "other_sows", 
                      "maiden_gilts", "boars_for_service", "other_pigs"),
          selected = "total_pigs"),
selectInput(inputId = "y",
          label = "Year by year change:",
          choices = c(2016, 2017, 2018, sep = ""),
          selected = 2016)
),
mainPanel(
plotOutput(outputId = "scatterplot")
)
)
)

server <- (function(input, output) {
output$scatterplot <- renderPlot({
ggplot(data = read.csv("eu_pigs.csv")) +
aes_string(x = input$x, y = input$y) +
geom_point()
})
})

shinyApp(ui, server)

我附上我的 csv 文件的图像。

【问题讨论】:

  • 你能提供数据吗?从图像看来,“total_pigs”是列中的一个值,在这种情况下,该图将不起作用,因为它希望获得一个列名
  • @DS_UNI 我的列名是:pig_breeds, 2016, 2017 & 2018 从 total_pigs 开始,所有行向下和跨越都是值,所以我的表格格式在 csv 而不是 shiny/ggplot2 中存在问题?
  • 请不要在每次通话时使用ggplot(data = read.csv("eu_pigs.csv")) +,一次就够了

标签: r ggplot2 shiny


【解决方案1】:

正如 DS_UNI 所暗示的,问题可能在于您的数据结构。 ggplot2 想要处理整洁的数据,所以在这种情况下,这意味着每一行代表一个案例,即一年。

这就是我认为您需要做的事情,尽管这是对您希望最终结果的样子做出一些假设!

第一步:读入csv进行数据整理

pigs_data <- read.csv("eu_pigs.csv")

第二步:将第一列设为行名

row.names(pigs_data) <- pigs_data$pig_breeds
pigs_data[1] <- NULL

第三步:转置数据

pigs_data <- t(pigs_data)

然后,您将在 ggplot 数据参数中使用 pigs_data

【讨论】:

  • 这正是我要找的...我认为问题在于ggplot2 而不是我的表格布局。感谢您和 @DS_UNI 为我澄清这一点。
  • 我现在收到一条错误消息:data 必须是数据框,或其他可被fortify() 强制转换的对象,而不是整数向量,这是指将第一列变成行名吗?
  • 如果将第一行更改为:pigs_data &lt;- as.data.frame(read.csv("eu_pigs.csv")),会发生什么?如果这不起作用,您能否提供更多关于pigs_data 的信息?如果您使用的是 RStudio,它是否会显示在“数据”下的“环境”窗格中?如果你做View(pigs_data)会是什么样子?
  • 更仔细地查看您的 ggplot 代码,我认为您可能还需要在定义数据方面做更多工作,但我认为这与此特定错误无关。跨度>
  • 我更改了第一行,但仍然出现相同的错误。环境下没有任何显示,除非我在那里导入我的数据集(在这种情况下,eu_pigs 的 csv 文件有 8 个变量,共 4 个变量)并且当我在控制台中输入 view(pigs_data) 时,我收到一条不同的错误消息 &gt; view(pigs_data) Error in View : object 'pigs_data' not found Error in view(pigs_data) : object 'pigs_data' not found In addition: Warning message: In view(pigs_data) : restarting interrupted promise evaluation
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多