У меня есть ggplot внутри функции renderPlot. Этот кодовый блок работает, как и ожидалось:
output$revenue_channel <- renderPlot({
ggplot(untrended_data(), aes(x = reorder(Channel, Revenue), y = Revenue), label = Revenue) +
geom_bar(stat="identity", fill = "#008080", alpha = 0.6) +
coord_flip() +
geom_text(aes(label = scales::dollar(Revenue)), hjust= 1.2, color = "white") +
scale_y_continuous(label = scales::label_dollar(scale = 0.001, suffix = "K")) +
xlab("") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
}, height = 300)
Этот кодовый блок работает и выдает следующую диаграмму:
Но по моему у меня фактически есть селектор пробоя, в котором пользователь мог ввести один из Channel, Device или UserType.
Итак, эта строка:
ggplot(untrended_data(), aes(x = reorder(Channel, Revenue), y = Revenue), label = Revenue)
станет либо такой:
ggplot(untrended_data(), aes(x = reorder(Device, Revenue), y = Revenue), label = Revenue)
Или это:
ggplot(untrended_data(), aes(x = reorder(UserType, Revenue), y = Revenue), label = Revenue)
Я пытался просто включить input$myinput
, как это так
ggplot(untrended_data(), aes(x = reorder(input$breakdown, Revenue), y = Revenue), label = Revenue)
Но это выдает ошибку:
Ошибка: аргументы должны иметь той же длины
Затем я попытался aes_ для aes_string ():
ggplot(untrended_data(), aes_(x = reorder(input$breakdown, "Revenue"), y = "Revenue"), label = Revenue)
Дискретное значение передается в непрерывную шкалу
Затем я попытался не имеет смысла этой страницы квази-цитаты и попытался:
ggplot(untrended_data(), aes(x = reorder(!! input$breakdown, Revenue), y = Revenue), label = Revenue)
Что привело к:
Ошибка: аргументы должны иметь одинаковую длину
Как передать входную разбивку $ в ggplot в renderPlot({})
?