首页 > 解决方案 > R Plotly ScatterPolar 图表 - 如何单独旋转标签?

问题描述

我正在尝试在 R Plotly 中制作一个简单的散点图,该图在径向轴上有 60 多个分类标签。因为标签太多,放置标签的默认方法会导致它们在图表的顶部和底部相互重叠。我尝试将 layout.polar.angularaxis.tickangle 设置为 90、-90 等,但这会将所有标签旋转该数量。有没有办法A)将每个标签旋转指定值,以便我可以将一些标签设置为-90度,其他标签设置为-45,其他设置为0,其他设置为+45等......或B)离开标签在 0 处旋转(就像现在一样),但稍微避开它们,以免它们在图表的顶部和底部重叠?我认为 B 会更容易和更受欢迎,但不确定 A 或 B 是否可行。

这是一个最小的可重现示例:

labs1 <- c("Red ", "Green ", "Blue ", "Yellow ", "Orange ", 
           "Purple ", "Pink ", "Black ", "White ", "Gray ")
labs2 <- c("Bookshelf", "Television", "Refridgerator", 
           "Toolbox", "Xylophone" , "Chromosome")
labs <- sample(paste0(rep(labs1, each = 6), rep(labs2, times = 10)), 60, replace = F)

df <- data.frame(Label = labs,
                 Radius = sample(0:100, 60, replace = F))

plot_ly(df) %>%
  add_trace(type = 'scatterpolar', mode = 'markers',
            r = ~Radius,
            theta = ~Label,
            fill = 'toself')

结果如下:

具有重叠标签的散射极

标签: rplotly

解决方案


推荐阅读