ggplot2 - Расширение сегмента geom_sese за пределы видимого диапазона графика - PullRequest
0 голосов
/ 21 марта 2019

Я строю сюжет для блестящего приложения, используя ggplot и plotly.Мои данные охватывают годы, но пользователь может контролировать диапазон дат и просто просматривать небольшое количество за раз.Я пытаюсь использовать geom_segments для представления продолжительности событий (события с датами начала и окончания).Моя проблема в том, что событие вообще не будет отображаться на графике, если только даты начала и окончания не будут находиться в выбранном пользователем диапазоне просмотра.

Есть ли способ заставить сегменты geom_segment появляться и выглядеть так, как будто они продолжаются за пределами графика, если, например, дата xend не находится в выбранном диапазоне просмотра?

Спасибо!

Обновление: вместо этого кажется, что использование координированной карты - правильный путь, но теперь я получаю это представление: График

1 Ответ

1 голос
/ 21 марта 2019

Вам нужно использовать функцию coord_cartesian, чтобы ограничить свои графики, но при этом держать линии нарисованными ...

df2 <- expand.grid(
    lineend = c('round', 'butt', 'square'),
    linejoin = c('round', 'mitre', 'bevel'),
    stringsAsFactors = FALSE
)
df2 <- data.frame(df2, y = 1:9)
ggplot(df2, aes(x = 1, y = y, xend = 2, yend = y, label = paste(lineend, linejoin))) +
    geom_segment(
        lineend = df2$lineend, linejoin = df2$linejoin,
        size = 3, arrow = arrow(length = unit(0.3, "inches"))
    ) +
    geom_text(hjust = 'outside', nudge_x = -0.2) +
    # scale_x_continuous(limits=c(0.5,1.5)) +
    coord_cartesian(xlim=c(0.5,1.5))

Поэтому удалите # из scale_x_continuous, чтобы увидеть разницу.

...