R语言ggplot2中如何基于数据框列值旋转geom_point点标记
geom_point本身不支持将角度作为美学参数映射到数据列,你可以使用geom_text替代实现需求,所有符号会以自身坐标为中心原地旋转,不会改变绘制位置:
- 把你使用的自定义Unicode符号
\u2BCA作为label参数传入geom_text - 在美学映射中添加
angle = top,直接使用top列的数值作为每个符号的旋转角度 - 调整
size参数到合适的显示大小即可,geom_text的size单位和geom_point不同,可根据显示效果自行调整
完整示例代码如下:
library(ggplot2) # 示例数据 nums = c(20,30,40,50,60,70,80,90, 100) bot = c(5,5,5,5,5,5,5,5,5) top = c(40,80,120,160,200,240,280,320,360) bot_nums = data.frame(nums, bot, top) # 绘图代码 ggplot(bot_nums, aes(x = nums, y = bot)) + geom_text( aes(angle = top), label = "\u2BCA", size = 12, show.legend = FALSE )
如果最终的旋转方向和你的预期相反,将映射修改为angle = -top即可调整旋转方向。
内容的提问来源于stack exchange,提问作者lowlyprogrammer
相关产品推荐
相关产品推荐

