2011-09-25 4 views
0

나는 범주 형 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) 

이 결과 플롯이다 :

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

before

그리고 여기에 내가 같이 할 음모를 싶은 것이 약이다 여기

는 예를 들어 데이터 집합은 다음과 같습니다

after

도움을 주셔서 감사합니다.

+0

Ramnath은 영리한 솔루션을 제공에 몇 줄을 추가해야합니다. 일반적으로 [this] (http://groups.google.com/group/ggplot2/browse_thread/thread/45bc27bf163920bc/1950ff7bda8e4784?lnk=gst&q=labels+between+axis+ticks#1950ff7bda8e4784) 스레드는 이것이 아니라고 제안합니다. 일반적으로 ggplot2에서 가능합니다. 그래도 기본 그래픽에서 쉽게 할 수 있습니다 (http://stackoverflow.com/questions/7530933/placing-the-x-axis-labels-between-period-ticks). – joran

+0

흠 ... 너무 나 빠졌어. ggplot2를 사용하고 있는데, 기본 그래픽을 구현하는 방법을 아직 알지 못하는 다른 조작이 있기 때문입니다. 이제 Ramnath의 해결 방법을 사용하겠습니다. – jslefche

답변

1

그냥 당신이 실제로 CAT1/CAT2 및 CAT2/Cat3 특징 사이 틱하지 않은 가정, 당신의 음모를 꾸미고 코드

# 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) 
+2

xintercept 인수에 벡터를 사용할 수 있습니다. 따라서 두 geom_vline 문을 단지 하나의 geom_vline (xintercept = c (1.5, 2.5))으로 대체 할 수 있습니다. – Thierry

관련 문제