【发布时间】:2021-10-29 22:14:05
【问题描述】:
我想知道是否可以在R (https://ggplot2.tidyverse.org/reference/guide_axis.html) 中更改guide_axis() 函数的默认渲染选项。
默认情况下,n.dodge 属性会更改用于呈现垂直轴标签的行数和水平轴的列数。
我想转置这种关系以改变垂直轴的标签行数。
虽然一开始这似乎违反直觉,但解决饼图中重叠标签的问题可能很有用。
下面是一个可视化我的意思的例子。
library(data.table)
library(ggplot2)
df <- data.frame(name = c('A', 'B', 'C', 'D'),
value = c(1, 1, 1, 97))
p <- ggplot(data = df, aes(x = '', y = value, fill = name)) +
geom_bar(stat = 'identity', width = 1) +
coord_polar('y', start = 0) +
theme(legend.position = 'none',
axis.title = element_blank(),
axis.ticks = element_blank(),
panel.background = element_blank(),
panel.grid = element_blank()) +
scale_y_continuous(breaks = sum(df$value) - cumsum(df$value) + df$value/2,
labels = paste(df$value, 'Percent', sep = ' '),
guide = guide_axis(n.dodge = 4))
p
显然,n.dodge = 4 对本示例中的饼图标签没有影响。
因此,我的想法是将轴渲染视为水平,而不是垂直。
这种方法总体上是否有意义,还是ggplot 的标签组织方式完全不同?
如果垂直轴的行有意义,我该如何实现?
最好, 奥利弗
【问题讨论】:
-
我认为
coord_polar()甚至没有使用该指南。如果您将coord_polar()$render_axis_v与coord_cartesian()$render_axis_v进行比较,您会发现polar 方法不会绕过任何指南,而是具有某种硬编码的绘制轴的方式。即使您设置了guide = "none",它仍然会绘制坐标轴。
标签: r ggplot2 pie-chart axis-labels