У меня есть два картографических графика «Общая нация» и «Плотность населения», созданная с использованием файла формы. Теперь я пытаюсь создать блестящее приложение, чтобы я мог перейти от Total Population to Population Density, и график должен измениться соответствующим образом. Когда я запускал код, я получил следующий код ошибки:Ошибка при попытке создания приложения Shiny
Предупреждение: Ошибка: ggplot2 не знает, как обращаться с данными класса матрицы
Вот код, который я пытался использование:
library(shiny)
library(ggplot2) #Loading necessary libraries
ui <- fluidPage(
selectInput("mr",
label="Type of Plot",
choices=c("Total Population", "Density"),
selected="Total Population"),
plotOutput("curv") #Giving an input name and listing out types to choose in the Shiny app
)
server <- function(input, output){
output$curv <- renderPlot({
ggplot() +
geom_polygon(data = final.plot==input$mr,
aes(x = long, y = lat, group = group, fill = Population),
color = "black", size = 0.20) +
coord_map()+
scale_fill_distiller(name="Population", palette = "YlGn")+
labs(title="Population in Australia")
}) # Output with the data file and input string to change when input changes.
}
shinyApp(ui = ui, server = server)
Любая помощь очень ценится.
UPDATE:
Мой набор данных выглядит следующим образом:
id long lat order hole piece
1 Ashmore and Cartier Islands 123.1169 -12.25333 1 FALSE 1
2 Ashmore and Cartier Islands 123.1206 -12.25611 2 FALSE 1
3 Ashmore and Cartier Islands 123.1222 -12.25861 3 FALSE 1
4 Ashmore and Cartier Islands 123.1239 -12.25528 4 FALSE 1
5 Ashmore and Cartier Islands 123.1258 -12.25333 5 FALSE 1
6 Ashmore and Cartier Islands 123.1275 -12.25619 6 FALSE 1
group Population Density
1 Ashmore and Cartier Islands.1 NA NA
2 Ashmore and Cartier Islands.1 NA NA
3 Ashmore and Cartier Islands.1 NA NA
4 Ashmore and Cartier Islands.1 NA NA
5 Ashmore and Cartier Islands.1 NA NA
6 Ashmore and Cartier Islands.1 NA NA
Это хранится в DataFrame под названием "final.plot". Существуют ценности населения и плотности для других государств. Я был в состоянии создать статическую визуализацию населения и это выглядит следующим образом:
Там Похожие один для плотности, и я пытаюсь создать глянцевое приложение, где я могу переключаться между этими двумя, так что сюжет изменяется соответствующим образом. Сейчас я попытался следующий код:
library(shiny)
library(ggplot2) #Loading necessary libraries
ui <- fluidPage(
selectInput("pop",
label="Type of Plot",
choices=c("Population", "Density"),
selected="Total Population"),
plotOutput("curv") #Giving an input name and listing out types to choose in the Shiny app
)
server <- function(input, output){
output$curv <- renderPlot({
ggplot() +
geom_polygon(data = final.plot,
aes(x = long, y = lat, group = group, fill = input$pop),
color = "black", size = 0.25) +
coord_map()+
scale_fill_distiller(name="Density", palette = "Spectral")+
labs(title="Population in Australia")
})
}
shinyApp(ui = ui, server = server)
Но я получаю сообщение об ошибке сказав «Discrete Поставляемого значения непрерывной шкалы».
UPDATE 2: Вот ссылка для набора данных я использую: Dataset
Сначала вы можете попытаться создать реактивный набор данных (в зависимости от ввода $ mr), а затем передать его в ggplot. –
этот 'data = final.plot == input $ mr,' возможно, не работает, и это объясняет ваше сообщение об ошибке. Я подозреваю другие проблемы (например, что означает 'final.plot', и что должен делать' mr', но это сложно, если ваш пример не является [воспроизводимым] (http://stackoverflow.com/вопросы/5963269/как к Make-A-пра-р-воспроизводимая-примера/5963610 # 5963610). –
Привет, я отредактировал сообщение. Было бы здорово, если бы вы могли посмотреть на него и прокомментировать его. Благодаря! –