ggplot 图例键和使用 treemapify 的标签之间的间距
Spacing between ggplot legend key and labels using treemapify
我有一个使用 ggplot 和 treemapify 制作的树状图。这很好,但图例被奇怪地压扁了——标签一直到 keys/symbols/icons 的边缘。这不会发生在其他地块上,所以这可能是一个 treemapify 问题?
当我搜索答案时,大多数都是关于更改标签之间的间距,例如,但这不是我想要做的。我找到了 this 个似乎是我的问题的答案。我想我可以在标签中添加空格!但感觉必须有更好的解决方案,特别是因为标签是我的列名并且其他地方不需要空格,因为出于某种原因,图例间距只是该图的一个问题。
我也尝试过 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
(颜色不匹配请见谅!)
您可以通过在 theme
中指定 legend.spacing.x
来在图例符号和文本之间手动添加边距。这个怎么样:
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
我有一个使用 ggplot 和 treemapify 制作的树状图。这很好,但图例被奇怪地压扁了——标签一直到 keys/symbols/icons 的边缘。这不会发生在其他地块上,所以这可能是一个 treemapify 问题?
当我搜索答案时,大多数都是关于更改标签之间的间距,例如,但这不是我想要做的。我找到了 this 个似乎是我的问题的答案。我想我可以在标签中添加空格!但感觉必须有更好的解决方案,特别是因为标签是我的列名并且其他地方不需要空格,因为出于某种原因,图例间距只是该图的一个问题。
我也尝试过 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
(颜色不匹配请见谅!)
您可以通过在 theme
中指定 legend.spacing.x
来在图例符号和文本之间手动添加边距。这个怎么样:
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