Zastąp oś X własnymi wartościami

101

Mam pytanie dotyczące polecenia plot ().

Czy istnieje sposób na całkowite wyeliminowanie osi X i zastąpienie jej własnymi wartościami? Wiem, że mogę pozbyć się osi, robiąc

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

a następnie dodaj oś z

axis(side = 1 etc.)

Jednak kiedy dodam oś, oczywiście nadal odnosi się ona do danych wykreślonych jako „x”. Chciałbym tylko wykreślić wartości „y” i dodać własną oś X w sensie „rysowania” osi X z określonymi własnymi wartościami. Czy istnieje jakiś sposób, aby to zrobić?

Tłem tego pytania jest to, że moje dwie ramki danych różnią się długością i dlatego nie mogę ich wykreślić.

Dani
źródło
Czy chcesz wykreślić wektory o różnych długościach, czy po prostu chcesz samodzielnie ustawić etykietę x? Czy możesz podać przykład lub podać więcej informacji o zestawie danych?
Manoel Galdino
Możesz również chcieć zobaczyć, jak połączyć razem dwie ramki danych. Możesz być w stanie wykonać więcej wykresów na podstawie danych i prawdopodobnie sprawić, że dane będą zawierały więcej informacji.
Sam
2
możliwy duplikat R: Jak ustawić funkcję plot () oznaczającą oś X?
Blue Magister,
możliwy duplikat R, zmienić odstępy znaczników na osi wykresu?
Waldir Leoncio

Odpowiedzi:

182

Nie jestem pewien, czy to masz na myśli, ale możesz to zrobić:

plot(1:10, xaxt = "n", xlab='Some Letters')
axis(1, at=1:10, labels=letters[1:10])

który następnie daje wykres:

wprowadź opis obrazu tutaj

tim_yates
źródło
Dzięki Tim! Nie do końca to, czego szukałem, ale pomogło mi zrobić to, co chciałem =)
Dani
5
W tym przypadku x i y mają taką samą długość. jak narysować n etykiet, gdy długość drugiej osi to m?
Colbert Sesanker,
2
tylko w celach informacyjnych: xaxt="n"opcja w plotpoleceniu blokuje etykietowanie osi X. Jeśli ta opcja nie jest uwzględniona, axisbędzie NOOP.
Steen
To działa, ale jak to obrócić, aby było pionowe? las = 2 nie działa.
biegające ptaki
Wypróbowałem rozwiązanie. xaxt = "n"opcja działała dla szeregów czasowych klasy ts. Ale w przypadku wielu szeregów czasowych (klasa mts) to nie zadziałało.
Erdogan CEVHER
15

Możesz także ustawić labels = FALSEwewnątrz axis(...)i wydrukować etykiety w osobnym poleceniu z tekstem. Dzięki tej opcji możesz obracać tekst w razie potrzeby

lablist<-as.vector(c(1:10))
axis(1, at=seq(1, 10, by=1), labels = FALSE)
text(seq(1, 10, by=1), par("usr")[3] - 0.2, labels = lablist, srt = 45, pos = 1, xpd = TRUE)

Szczegółowe wyjaśnienie tutaj

Obraz z obróconymi etykietami

user9869932
źródło
Link do detailed explanationnie żyje
javadba