Как управлять тиками оси x при обработке динамических x asix через shiny (внутри ggplot)

Ниже приводится моя сюжетная функция.

Я использовал здесь реализованный код, а не воспроизводимый, потому что я просто хочу знать концепцию работы с вещами здесь.

print(ggplot(subset(gg1,!is.na(var)), aes_string(x = "Day", y = var, group = "Mi")) +
                geom_point(aes(color = factor(Mi)), size = 5, alpha = 0.7) + 
                #scale_x_continuous(breaks=pretty_breaks(n=10)) + #geom_smooth(stat= "smooth" , alpha = I(0.4), method="loess",color="grey", formula = y ~ x)  
                scale_color_manual("Mesocosm", values = c('#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#808080', '#800000' , '#008000', '#008080')) +
                scale_y_continuous(breaks=pretty_breaks(n=10)) +
                theme_bw() +
                geom_line(data = (ggl), size = 0.5) +
                theme (legend.position = "right", legend.title=element_text(size=14),
                       panel.border = element_rect(colour = "black"),strip.background = element_rect(fill="#CCCCFF"), 
                       strip.text.x = element_text(size=14, face="bold"),axis.text.y = element_text(colour="grey20",size=13,face="bold"),
                       axis.text.x = element_text(colour="grey20",size=13,face="bold"),
                       axis.title.x = element_text(colour="grey20",size=20,face="bold"),
                       axis.title.y = element_text(colour="grey20",size=20,face="bold")) +
                xlim(input$slider[1],input$slider[2]) +
                scale_x_continuous(breaks=pretty_breaks(n=10)) )

Я хочу разделить отметки x asix, чтобы разместить больше отметок на оси x. это я могу сделать с помощью scale_x_continuous, как показано в приведенном выше примере. Результат в порядке и галочки получаю как хотел.

Что такое клещи? Похожий вопрос можно найти здесь: [Pretty Breaks] [1]

Но в приведенной выше реализации динамическая ось x не выполняет свою работу,

Динамическая ось x: измените точки ползунка, чтобы ось x настраивалась автоматически.

Далее: если я изменю порядок последних двух строк, например

scale_x_continuous (breaks = pretty_breaks (n = 10)) + xlim (input $ slider [1], input $ slider [2])))

Тогда scale_x _continuous не работает, говоря: «Масштаб для 'x' уже присутствует. Добавление другого масштаба для 'x', который заменит существующий масштаб». (Что исключает наличие большого количества клещей, которые я намереваюсь иметь).

Как я могу реализовать и то, и другое в этом случае. [Хотите иметь динамическую ось x, а также хотите перезаписать предопределенные отметки и иметь больше отметок.]

Обзор можно увидеть на этой картинке. ! [введите описание изображения здесь] [2]

Рисунок показывает, хотя значения ползунка изменены, ось x не регулируется, потому что, как я уже сказал, порядок scale_x_continuous и xlim.

Как заставить работать оба?


person cppiscute    schedule 24.09.2014    source источник
comment
Вы пробовали использовать аргумент limits в scale_x_continuous вместо использования сокращенной функции xlim?   -  person aosmith    schedule 25.09.2014


Ответы (1)


Я думаю, что ограничения в функции scale_x_continous () - это то, что вам нужно.

Заменять:

xlim(input$slider[1],input$slider[2]) +
                scale_x_continuous(breaks=pretty_breaks(n=10)) )

С участием:

scale_x_continuous(breaks=pretty_breaks(n=10), limits=c(input$slider[1],input$slider[2])) )
person GregF    schedule 24.09.2014