Отрегулируйте размер geoms при увеличении в `ggiraph` - PullRequest
0 голосов
/ 02 ноября 2018

Пакет ggiraph расширяет ggplot2, чтобы добавить интерактивность. Одной из функций является возможность увеличения графика, например, используя следующий код:

library(ggplot2)
library(ggiraph)

data(mtcars)

mtcars$model <- rownames(mtcars)

gg <- ggplot(mtcars, aes(x = mpg, y = disp)) +
  geom_point_interactive(aes(color = as.factor(cyl),
                             tooltip = model))

girafe(ggobj = gg) %>%
    girafe_options(opts_zoom(max = 5),
                   opts_tooltip(use_fill = TRUE))

При предварительном просмотре диаграммы можно увеличить, нажав на лупу и прокручивая. Когда пользователь увеличивает масштаб, точки увеличиваются, но размер всплывающей подсказки остается прежним.

Можно ли настроить размеры геома (например, радиус точки или толщину линии) при увеличении?

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

Я использую ggiraph, потому что это простое расширение ggplot2, но если есть сопоставимый пакет, я был бы открыт для других решений.

1 Ответ

0 голосов
/ 04 ноября 2018

Прежде всего, ваш код не воспроизводится, так как model недоступен, поэтому я предполагаю, что вы присвоили имена строк mtcars вектору model.

Я не думаю, что Вы можете сделать это в ggiraph, но это просто в plotly: Вы можете сгенерировать объект ggplot и просто преобразовать его в plotly объект, используя plotly::ggplotly().

Для примера mtcars в Вашем вопросе, следующее помогает:

library(plotly)

data(mtcars)

# generate ggplot object
gg <- ggplot(mtcars) + 
  geom_point(aes(x = mpg, y = disp, col  = as.factor(cyl), text = rownames(mtcars))) 

# convert to plotly object
ggplotly(gg, tooltip = "text")

Результат выглядит как ggplot2, но является интерактивным и не страдает от проблемы масштабирования. Вы можете поиграть с ним в программе просмотра, включить его в выходные форматы, поддерживающие виджеты HTML, или просмотреть его в браузере.

enter image description here

Поскольку вышеприведенный пример - только сценарий, я загрузил вывод в свой аккаунт на plot.ly. Вы можете найти его здесь и поиграть с ним.

Надеюсь, это поможет!

...