Отрегулируйте размер geoms при увеличении в `ggiraph`

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 ответ

Прежде всего, Ваш код не воспроизводится как 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, или просмотреть его в браузере.

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

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

Другие вопросы по тегам