【问题标题】:how to add a long directional arrow after the text in xlab ggplot2?如何在xlab ggplot2中的文本后添加一个长方向箭头?
【发布时间】:2020-01-23 17:18:33
【问题描述】:

我想使用 ggplot2 在 xlab 中的文本后添加一个箭头。下面是一个代码示例,我尝试这样做,但添加了虚线和符号,但它不是很美观。

ggplot(data=Q2, aes(x=month, y=dataQ)) +xlab("Mois     ------------------------------------------->") + ylab("Pr(mm)") +geom_bar(stat="identity", position = "dodge") + scale_x_discrete(limits=c("JAN", "FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"))+theme(plot.title = element_text(color="black", size=14, face="bold.italic"),axis.line = element_line(colour = "black", size = 1, linetype = "solid"),
                                                                                                                                                                                                                                                                                                                                              axis.text.x = element_text(face="bold", color=" black",size=11, angle=0),axis.text.y = element_text(face="bold", color="black",size=11, angle=90),axis.title.x = element_text(color="black", size=14, face="bold"),
                                                                                                                                                                                                                                                                                                                                              axis.title.y = element_text(color="black", size=14, face="bold") 
)

这是我得到的图表

【问题讨论】:

  • 您可以使用 Unicode 右箭头:+ labs(x=paste("Mois", "\U2192"))
  • 还有一个更长的 Unicode 箭头,但我发现它没有以默认字体显示。我能够使用 Symbola 字体正确显示箭头(如果您还没有它,您可能需要在系统上安装它)。 + labs(x=paste("Mois", "\U27f6")) + theme(text=element_text(family="Symbola"))
  • @eipi10 我下载并安装了“Symbola”字体,但是当我运行您上面建议的代码时,我收到以下错误 "In grid.Call.graphics(C_text, as.graphicsAnnot (x$label), ... : 在 Windows 字体数据库中找不到字体系列"
  • 假设您已经在系统上安装了 Symbola 字体,另一件要尝试的事情是 extrafont 包。 Follow the instructions here 导入和注册所有可用的字体以用于 R。

标签: r ggplot2 axis-labels xlabs


【解决方案1】:

您可以使用annotateclip = "off",如下所示:

library(ggplot2)

ggplot() + 
  coord_cartesian(ylim = c(0, 1), xlim = c(0, 1), clip="off") +
  xlab("x label") +
  ylab("y label") +
  annotate("segment", 
           x = 0.6, xend = 0.9, y = -0.11, yend = -0.11,
           arrow=arrow(length=unit(0.3, "cm")))

reprex package (v0.3.0) 于 2020-01-23 创建

【讨论】:

  • 我测试了你的建议,但箭头没有超出坐标轴刻度盘!
  • @Falltok 如果您完全按照给定的方式运行代码(即复制和粘贴),它会给出如图所示的箭头吗?问题是您没有提供minimal, complete, verifiable example,所以我无法根据您的具体情况向您展示。
  • ggplot(data=Q2, aes(x=month, y=dataQ)) + labs(x=paste("Mois")) + ylab("Pr(mm)") +geom_bar(stat="identity", position = "dodge") + coord_cartesian(ylim = c(0,250), xlim = c(0, 12), clip="off") +annotate("segment", x =1, xend = 6, y = -7, yend = -7,arrow=arrow(length=unit(0.3, "cm")))+scale_x_discrete(limits=c("JAN", "FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC"))
  • 在我使用的代码上方,箭头如图所示,但它没有向下到标题,它停留在轴上方!
  • @Falltok 你用传递给annotate函数的参数改变了箭头的位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 2019-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多