Я пытаюсь организовать два объекта ggplot, преобразованных в объект plotly, и использовать одну общую легенду. Но легенда как-то в два раза:Плоский подзаговор с двумя ggplots и общей легендой?
df1 <- read.table(text = "group x y
group1 -0.212201 0.358867
group2 -0.279756 -0.126194
group3 0.186860 -0.203273
group4 0.417117 -0.002592
group1 -0.212201 0.358867
group2 -0.279756 -0.126194
group3 0.186860 -0.203273
group4 0.186860 -0.203273", header = TRUE)
df2 <- read.table(text = "group x y
group1 0.211826 -0.306214
group2 -0.072626 0.104988
group3 -0.072626 0.104988
group4 -0.072626 0.104988
group1 0.211826 -0.306214
group2 -0.072626 0.104988
group3 -0.072626 0.104988
group4 -0.072626 0.104988", header = TRUE)
library(dplyr)
library(ggplot2)
library(plotly)
p1 <- ggplot(df1, aes(x = x, y = y, colour = group)) +
geom_point(position = position_jitter(w = 0.04, h = 0.02), size = 1.8)
p2 <- ggplot(df2, aes(x = x, y = y, colour = group)) +
geom_point(position = position_jitter(w = 0.04, h = 0.02), size = 1.8)
subplot(ggplotly(p1), ggplotly(p2), nrows = 1)
Я попытался
subplot(ggplotly(p1), ggplotly(p2), nrows = 1) %>% layout(showlegend = FALSE)
но вся легенда просто исчезает
спасибо за ответ. Вы знаете, как выбрать один и тот же регион на обоих участках, когда выбран регион? – schlusie
Вы хотите сказать, что вы хотите, чтобы диапазоны осей x и y были одинаковыми? Если да, есть несколько вариантов. (1) удалить 'scales =" free "'. (2) Заменить 'facet_wrap (~ df, scale =" free ") +' с 'facet_grid (. ~ Df) +'. (3) Установите диапазоны вручную, например, «scale_y_continuous (пределы = c (-0.2,0.3))» и аналогично для оси x. (4) Задайте диапазоны вручную с помощью 'coord_cartesian (xlim = c (-0.3, 0.4), ylim = c (-0.2, 0.4))'. – eipi10
Спасибо. Но то, что я хотел, находится в объекте plotly: я могу увеличить масштаб, рисуя прямоугольник или определенный регион. Затем адаптируется только ось на выбранном участке. Но я хочу, чтобы обе оси адаптировались. – schlusie