Я хочу организовать несколько легенд в ggplot с несколькими строками и столбцами. Однако в настоящее время из документации я могу выбирать только направление или управлять строками / столбцами в пределах одной легенды. Я что-то упускаю? Спасибо за любую ссылку на решение. Вот пример кода, то, что я сделал, и ожидаемый результат.
data <- seq(1000, 4000, by=1000)
colorScales <- c("#c43b3b", "#80c43b", "#3bc4c4", "#7f3bc4")
names(colorScales) <- data
ggplot() +
geom_point(aes(x=data, y=data, color=as.character(data), fill=data, size=data),
shape=21) +
scale_color_manual(name="Legend 1",
values=colorScales) +
scale_fill_gradientn(name="Legend 2",
labels=comma, limits=c(0, max(data)),
colours=rev(c("#000000", "#FFFFFF", "#BA0000")),
values=c(0, 0.5, 1)) +
scale_size_continuous(name="Legend 3") +
theme(legend.direction = "vertical", legend.box = "vertical")
ggplot() +
geom_point(aes(x=data, y=data, color=as.character(data), fill=data, size=data),
shape=21) +
scale_color_manual(name="Legend 1",
values=colorScales) +
scale_fill_gradientn(name="Legend 2",
labels=comma, limits=c(0, max(data)),
colours=rev(c("#000000", "#FFFFFF", "#BA0000")),
values=c(0, 0.5, 1)) +
scale_size_continuous(name="Legend 3") +
theme(legend.direction = "vertical", legend.box = "horizontal")
Вывести горизонтальную легенду
ggplot() +
geom_point(aes(x=data, y=data, color=as.character(data), fill=data, size=data),
shape=21) +
scale_color_manual(name="Legend 1",
values=colorScales) +
scale_fill_gradientn(name="Legend 2",
labels=comma, limits=c(0, max(data)),
colours=rev(c("#000000", "#FFFFFF", "#BA0000")),
values=c(0, 0.5, 1)) +
guides(colour = guide_legend(nrow = 2, byrow = T, override.aes=list(size=4))) +
guides(size = guide_legend(nrow = 2, byrow = T)) +
scale_size_continuous(name="Legend 3") +
theme(legend.direction = "vertical", legend.box = "vertical")
Легенда вывода с вертикальным расположением, по 2 столбца в каждой легенде:
Я хочу вот что:
plotly
- я считаю, что у него больше возможностей для размещения элементов. - person Gautam   schedule 28.08.2018cowplot::plot_grid
, чтобы объединить их определенным образом cran.r-project.org/web/packages/cowplot/vignettes/ - person Tung   schedule 28.08.2018ggplot2
из коробки, т.е. я почти уверен, что вы ничего не пропустили. Вы можете вручную создать другие аранжировки, если не против возиться, например, сcowplot::get_legend
иcowplot::plot_grid
. - person Axeman   schedule 28.08.2018gtable::gtable_filter
также позволяет извлекать легенды, которые затем можно размещать в любом месте на графиках, используяgridExtra::annotation_custom
, Подробности здесь - person Jan Boyer   schedule 28.08.2018