在ggplot2中添加x轴文本

4
这里有数据:
myd <- data.frame (X1 = rep (c("A0001", "B0002", "C0003", "D0004"), each = 2),
X2 = rep (c(1, 5.3, 8.2, 12.5), each = 2), X3 = rep (c("A", "B"), 4),
 Y = rnorm (8, 5, 2))

以下是我可以绘制的图表:

 require(ggplot2)
 ggplot(myd, aes(x = X2, y = Y, group = X3)) + 
geom_point (aes(col = X3, pch = X3)) + geom_line (aes(col = X3))

我希望将X1文本与X2值对应的位置相匹配。只是简单地草图:
如何做到这一点? 编辑:
注意:目标是同时显示连续比例尺和X轴上的文本:
2个回答

7

创建两个新图层:

  • geom_rug 用于轴上的线条
  • geom_text 用于标签 - 但首先创建所需标签的摘要

代码:

ruglabels <- unique(myd[, 1:2])

require(ggplot2)
ggplot(myd, aes(x=X2, y=Y)) + 
  geom_point (aes(col = X3, pch = X3, col=X3)) + 
  geom_line (aes(col = X3, col=X3)) +
  geom_rug(sides="b") +
  geom_text(data=ruglabels, aes(x=X2, label=X1, y=2))

enter image description here


2
如果您只需要X1标签而不需要坐标,您可以这样做:
require(ggplot2)


myd <- data.frame (X1 = rep (c("A0001", "B0002", "C0003", "D0004"), each = 2),
    X2 = rep (c(1, 5.3, 8.2, 12.5), each = 2), X3 = rep (c("A", "B"), 4),
    Y = rnorm (8, 5, 2))

ggplot(myd, aes(x = X2, y = Y, group = X3)) + 
    geom_point (aes(col = X3, pch = X3)) + geom_line (aes(col = X3))+
    scale_x_continuous( breaks = myd$X2, labels = myd$X1)

Your plot with x-axis labels.


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接