Интервал между ключом легенды ggplot и метками с помощью treemapify - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть древовидная карта, которую я создал, используя ggplot и treemapify.Это хорошо, но легенда странно раздавлена ​​- надписи расположены по краям клавиш / символов / значков.Это не происходит с другими графиками, так что, возможно, это проблема древовидной карты?

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

Я также пытался, например, theme(legend.text.align = 0.2), но это явно не так, потому что речь идет о выравнивании, а не полях или заполнении.

library(ggplot2)
library(treemapify)

tree_data <- as.data.frame(matrix(0, ncol = 0, nrow = 12))
tree_data$colour <- as.character(c("Red", "Red", "Blue", "Green"))
tree_data$shade <- as.character(c("Ruby", "Merlot", "Ink", "Olive",
                                  "Garnet", "Wine", "Royal", "Emerald",
                                  "Brick", "Berry", "Navy", "Apple"))
tree_data$freq <- sample(100, size = nrow(tree_data), replace = TRUE)

treeMapPlot <- ggplot(tree_data, aes(area = freq, fill = colour, label = shade, 
                                          subgroup = colour)) +
  geom_treemap(color = "gray20") +
  geom_treemap_subgroup_border() +
  geom_treemap_text(colour = "white", place = "topleft", reflow = T, padding.x = grid::unit(1.5, "mm"),
                    padding.y = grid::unit(2, "mm"), size = 20) +
  theme(plot.title = element_text(hjust = 0.5, size = 16),
        legend.title = element_blank())

treeMapPlot

Example of issue

(извинения за несоответствие цвета!)

1 Ответ

0 голосов
/ 14 декабря 2018

Вы можете вручную добавить поле между символами легенды и текстом, указав legend.spacing.x в theme.Как насчет этого:

treeMapPlot <- ggplot(tree_data, aes(area = freq, fill = colour, label = shade, 
                                 subgroup = colour)) +
  geom_treemap(color = "gray20") +
  geom_treemap_subgroup_border() +
  geom_treemap_text(colour = "white", place = "topleft", reflow = T, padding.x = grid::unit(1.5, "mm"),
                padding.y = grid::unit(2, "mm"), size = 20) +
  theme(plot.title = element_text(hjust = 0.5, size = 16),
    legend.title = element_blank(),
    legend.spacing.x = unit(0.2, 'cm'))

treeMapPlot

enter image description here

...