我想用geom_point
在coord_polar
图中自动添加y轴标签。下面是一个可重复的示例:
library(ggplot2)
ggplot(mtcars, aes(x = hp, y = mpg, color = factor(am))) +
geom_point() +
coord_polar() +
labs(color = 'am')
创建于2022-10-31使用reprex v2.0.2
这里你可以看到y轴标签在侧面,但我希望它们在极坐标图内。我知道你可以像这样使用annotate
:
library(ggplot2)
ggplot(mtcars, aes(x = hp, y = mpg, color = factor(am))) +
geom_point() +
coord_polar() +
labs(color = 'am') +
annotate('text', x = 0, y = c(15, 20, 25, 30), label = c('15', '20', '25', '30'))
创建于2022年10月31日,使用reprex v2.0.2
但是这不是很自动化,所以我想知道是否有一种自动的方法可以像上面那样在coord_polar
图中添加y轴标签?
2条答案
按热度按时间zphenhs41#
让你开始:您可以提取中断并应用这些中断以使其至少“半自动”:
创建于2022-10-31使用reprex v2.0.2
hc2pp10m2#
在user 12728748的答案的基础上,您还可以使用ggplot自己的
scales::extended_breaks
方法直接计算中断。注意:对于极坐标,计算的间断点的限制似乎被丢弃。这似乎类似于间断点与guide_legend函数一起用于连续数据时的行为(另请参见:How does ggplot calculate its default breaks?).我不知道这到底发生在哪里-but maybe someone knows an answer to this question.
创建于2023-04-01使用reprex v2.0.2