【问题标题】:How to move x axis labels using coord_polar in ggplot2如何在ggplot2中使用coord_polar移动x轴标签
【发布时间】:2016-04-28 13:52:12
【问题描述】:

我无法在下图中移动轴标签(字段数据、辅助数据等),以便它们既大又完全适合图表。整个代码如下。有什么建议吗?

Datasource<-c("Field data", "Participatory data", "Remotely sensed data", 
              "Remotely sensed secondary data", "Secondary data")
Number<-c(32,39,55,96,202)
Percentage<-c(11,14,19,34,70)
DF<-data.frame(Datasource, Number, Percentage)

FigDataSourcesFlower<-ggplot(data=DF, aes(x=Datasource, y=Percentage)) +
  geom_bar(stat="identity", fill = "blue") + theme_bw() + 
  geom_text(aes(y = Percentage + 2.5,label = Percentage)) +
  coord_polar() +
  theme(axis.text.x = element_text(size = 15), axis.text.y=element_blank(), axis.ticks=element_blank(), axis.title=element_blank())
FigDataSourcesFlower

我尝试使用hjustvjust,但我不认为这正是我想要的,因为它们更多地用于角度调整。我读到我可以使用\n 将标签分成两行,希望这能帮助它们适应,但我不确定如何做到这一点。

【问题讨论】:

  • 如果您在 2018 年之后遇到此问题,您可能会发现查看针对此 similar question 的解决方案建议很有用

标签: r ggplot2


【解决方案1】:

这是我目前能做的最好的:

p<-ggplot(data=DF, aes(x=Datasource, y=Percentage)) +
    geom_bar(stat="identity", fill = "blue") + 
    geom_text(aes(y = Percentage + 2.5,label = Percentage)) +
    coord_polar() +
    theme_bw() + 
    theme(axis.text.x = element_text(size = 15), 
                axis.text.y=element_blank(), 
                axis.ticks=element_blank(), 
                axis.title=element_blank(),
                panel.border = element_blank())
p

library(grid)
gt <- ggplot_gtable(ggplot_build(p))
gt$layout$clip[gt$layout$name == "panel"] <- "off"
grid.draw(gt)

这个想法来自this的回答。

【讨论】:

  • 谢谢!这当然很有帮助!
【解决方案2】:

R 不适合添加标签和轴标题。

我建议将图形从 R 导出为矢量图形文件 (.svg),然后在矢量图形软件中添加标签。我使用 Inkscape 软件是因为它可以免费下载,而且学习起来相当直观。

【讨论】:

  • 酷!谢谢。当 R 无法做到这一点时,这将是一个好去处!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-08
  • 2018-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多