R 更改轴记号格式并将线添加到绘图

R 更改轴记号格式并将线添加到绘图,r,ggplot2,R,Ggplot2,我有一个x轴是绝对的。我想让沿着轴的记号装箱标签,而不是在标签上方居中。我还希望在绘图中有垂直线沿x轴分隔每个类别 以下是一个示例数据集: df <- read.table(tc <- textConnection(" x y Cat1 2.3 Cat2 2.7 Cat3 1.0 Cat1 0.9 Cat2 9.3 Cat3 3.3"), header = TRUE); close(tc) 这里大致是我想要的情节: 谢谢你能提

我有一个x轴是绝对的。我想让沿着轴的记号装箱标签,而不是在标签上方居中。我还希望在绘图中有垂直线沿x轴分隔每个类别

以下是一个示例数据集:

df <- read.table(tc <- textConnection("
  x      y
 Cat1   2.3
 Cat2   2.7
 Cat3   1.0 
 Cat1   0.9
 Cat2   9.3
 Cat3   3.3"), header = TRUE); close(tc)

这里大致是我想要的情节:


谢谢你能提供的任何帮助

只需在绘图代码中添加几行即可

# YOUR CODE
pl0 = ggplot(df,aes(x,y))+
  geom_point()+
  theme_bw(base_size=16)+
  opts(panel.grid.major=theme_blank())

# MY ADDITION
pl1 = pl0 + opts(axis.ticks = theme_blank()) +
  geom_vline(xintercept = 1.5) +
  geom_vline(xintercept = 2.5)

Ramnath提供了一个聪明的解决方案,假设您实际上不需要Cat1/Cat2和Cat2/Cat3之间的滴答声。更一般地说,thread建议这在ggplot2中通常是不可能的。这很容易在基本图形中完成。嗯……那太糟糕了。我之所以使用ggplot2,是因为还有一些其他操作我还没有弄清楚如何在基本图形中实现。现在我将使用Ramnath的解决方法,您可以使用向量作为xintercept参数。因此,您可以将两个geom_vline语句替换为一个geom_vline(xintercept=c(1.5,2.5))
# YOUR CODE
pl0 = ggplot(df,aes(x,y))+
  geom_point()+
  theme_bw(base_size=16)+
  opts(panel.grid.major=theme_blank())

# MY ADDITION
pl1 = pl0 + opts(axis.ticks = theme_blank()) +
  geom_vline(xintercept = 1.5) +
  geom_vline(xintercept = 2.5)