pro*_*oge 3 r ggplot2 axis-labels polar-coordinates
如何使用ggplot中的coor_polar投影,x轴标签的角度与外部x轴的角度相同?这类似于在使用coord_polar()时在ggplot2中旋转x轴文本,但我不太了解数学以适应它.我在这种工作下面找到了一个试错法,其中angle = c(c(1:3)*c(-14,-22.3,-22),-90,c(3:1)*c(22,22.3,14),c(1:3)*c(-14,-22.3,-22),90,c(3:1)*c(22,22.3,14)).x轴标签一直向同一方向旋转也是可以的.如果所有其他方法都失败了,我可能会放弃旋转标签并添加第二个图例,如两个极地ggplot的图例(一个自定义).谢谢您的帮助!
require(ggplot2)
df.test <- data.frame(Names=c("name01", "name02", "name03", "name04", "name05", "name06", "name07", "name08", "name09", "name10", "name11", "name12", "name13", "name14"),Values=rep(1,24))
p <- ggplot(df.test, aes(Names, fill=Values))
p + coord_polar(theta="x", direction=1) +
geom_bar(stat="bin", colour="gray", alpha=.7) +
theme(axis.text.x = element_text(angle = c(c(1:3)*c(-14,-22.3,-22),-90,c(3:1)*c(22,22.3,14),c(1:3)*c(-14,-22.3,-22),90,c(3:1)*c(22,22.3,14))))
Run Code Online (Sandbox Code Playgroud)
我不清楚你的目标是什么,但看看这是否回答了这个问题:
+ theme(axis.text.x = element_text(angle =
360/(2*pi)*rev( seq( pi/14, 2*pi-pi/14, len=14))))
Run Code Online (Sandbox Code Playgroud)
这将使名称与分裂"相切".如果您希望它们"垂直"(如链接答案中的插图所示),您只需在角度上添加pi/2弧度即可.(我们俩都不是高中几何学?)
+ theme(axis.text.x = element_text(angle =
360/(2*pi)*rev( pi/2 + seq( pi/14, 2*pi-pi/14, len=14))))
Run Code Online (Sandbox Code Playgroud)
(顺便说一句:您指定的数据参数有错误.我将"24"更改为"14".)
如果前7个标签看起来正确,请告诉我,但是您希望图中LHS上的标签翻转.

所以你希望底部6旋转pi弧度(= pi*360/2*pi度):
+theme(axis.text.x = element_text(angle = 360/(2*pi)*rev(
seq(pi/14,2*pi-pi/14, len=14))+
360/(2*pi)*c( rep(0, 4),rep(pi,6), rep(0,4)) ))
# the rotation "back" of the lower items
Run Code Online (Sandbox Code Playgroud)
(我真的不明白使用度而不是弧度的决定.)
| 归档时间: |
|
| 查看次数: |
2948 次 |
| 最近记录: |