2012-08-02 18 views
46

tworzę działki w R i I dont like wartości osi X jest kreślonych przez R.Jak określić rzeczywiste wartości osi x wykreślić jako oś x kleszcze w R

Na przykład:

x <- seq(10,200,10) 
y <- runif(x) 

plot(x,y) 

Ten działki wykres z następujących wartości na osi X:

50, 100, 150, 200

Jednakże chcę wykreślić wartości 20 10,20, 30 ... 200 przechowywanych w variab le x, jako wartości osi X. Mam prane przez niezliczonych blogach i zwięzłej instrukcji - po wielu godzinach poszukiwań, najbliższa Doszedłem do znalezienia czegokolwiek przydatny jest następujący (streszczone) Instrukcje:

  1. połączeń plot() lub par(), określając argumentem xaxt='n'
  2. zadzwoń pod axis() np. axis(side = 1, at = seq(0, 10, by = 0.1), labels = FALSE, tcl = -0.2)

Próbowałem go i wynikowy wykres nie miał żadnych wartości osi X w ogóle. Czy to możliwe, że ktoś tam wie, jak to zrobić? Nie mogę uwierzyć, że nikt wcześniej nie próbował tego zrobić.

Odpowiedz

66

Znajdziesz odpowiedź na swoje pytanie na stronie pomocy dla ?axis.

Oto jeden z przykładów strona pomocy, modyfikowany swoje dane:

Opcja 1: Użyj xaxp zdefiniować oś etykiet

plot(x,y, xaxt="n") 
axis(1, xaxp=c(10, 200, 19), las=2) 

Opcja 2: Wykorzystanie at i seq() zdefiniowanie etykiet :

plot(x,y, xaxt="n") 
axis(1, at = seq(10, 200, by = 10), las=2) 

Obie te opcje dają ten sam rysunek:

enter image description here


PS. Ponieważ masz dużą liczbę etykiet, musisz użyć dodatkowych argumentów, aby dopasować tekst do działki. Używam las do obracania etykiet.

5

Przyjrzyj się bliżej dokumentacji ?axis. Jeśli spojrzeć na opisie labels argumentu, zobaczysz, że jest to:

"a logical value specifying whether (numerical) annotations are 
to be made at the tickmarks," 

Tak, wystarczy zmienić go na true, a dostaniesz etykiet kleszcza.

x <- seq(10,200,10) 
y <- runif(x) 
plot(x,y,xaxt='n') 
axis(side = 1, at = x,labels = T) 
# Since TRUE is the default for labels, you can just use axis(side=1,at=x) 

Należy uważać, że jeśli nie rozciągnąć szerokość okna, wówczas R może nie być w stanie napisać wszystkie etykiety w. Zagraj z szerokości okna, a zobaczysz co mam na myśli.


To źle, że miałeś problem ze znalezieniem dokumentacji! Jakie były twoje wyszukiwane hasła?Spróbuj wpisać r axis w Google, a pierwszym linkiem, który otrzymasz, jest Quick R page that I mentioned earlier. Przewiń w dół do "Siekierów", a otrzymasz bardzo miły przewodnik, jak to zrobić. Najprawdopodobniej najpierw sprawdź tam, czy nie masz pytań do kreślenia, będzie to szybsze niż czekanie na odpowiedź SO.

+2

Staranne. 'T' nie zawsze ma wartość' TRUE'. Lepiej określić "labels = TRUE". Ponadto wyniki wyszukiwania w Google będą zależeć od historii wyszukiwania. Aby uzyskać wskazówki dotyczące wyszukiwania [tag: r], zobacz [how-to-search-for-r-materials] (http://stackoverflow.com/questions/102056/how-to-search-for-r- materiały) – Andrie

0

Nadzieja to kodowanie będzie pomaga :)

plot(x,y,xaxt = 'n') 

axis(side=1,at=c(1,20,30,50),labels=c("1975","1980","1985","1990")) 
Powiązane problemy