Вам нужны данные, которые должны быть в «высоком» формате вместо «wide» для ggplot2. «широкий» означает наличие наблюдения за строку с каждой переменной в виде другого столбца (как и у вас сейчас). Вам нужно преобразовать его в «высокий» формат, где у вас есть столбец, который сообщает вам имя переменной и другой столбец, в котором указывается значение переменной. Процесс перехода от широкого к высокому обычно называют «плавлением». Вы можете использовать tidyr::gather
для растапливания вашего фрейма данных:
library(ggplot2)
library(tidyr)
test_data <-
data.frame(
var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
date = seq(as.Date("2002-01-01"), by="1 month", length.out=100)
)
test_data %>%
gather(key,value, var0, var1) %>%
ggplot(aes(x=date, y=value, colour=key)) +
geom_line()
Просто чтобы очистить data
, который ggplot
потребляет после того, как трубопровод через gather
выглядит следующим образом:
date key value
2002-01-01 var0 100.00000
2002-02-01 var0 115.16388
...
2007-11-01 var1 114.86302
2007-12-01 var1 119.30996
Если вы хотите обновить часть страницы, есть только 2 пути (для Интернета в целом, а не только для JSF). Вы должны использовать фреймы или Ajax. JSF 2 поддерживает ajax изначально, проверьте тег f: ajax, чтобы обновить только один компонент без перезагрузки всей страницы.
Netbeans предоставляет мастер, который создает предложенный макет с минимальными усилиями с помощью JSF. Итак, лучший способ начать - взглянуть на Мастер шаблонов Facelets и посмотреть на сгенерированный источник.