2017-02-06 7 views
0

Ich mag würde die x-Achse eines Diagramms in R. Hier ändern, ist mein Beispiel:Ändern X-Achsenwerte in r

plot(cbind(result, result),xlim=c(max(result),min(result)), 
    ylim=c(min(result),max(result)), xaxt="n") 
axis(1, at=result) 

result 
## [1] 0.6256767 0.6833695 0.7671350 0.5205373 0.4932262 0.5852338 0.5088692 0.3379572 
## [9] 0.3420370 0.3029084 0.4677624 0.4822537 0.3047485 0.3852572 0.3186014 0.2009436 
## [17] 0.1882227 0.2090007 0.2654110 0.3334744 

enter image description here

ich neue Werte auf die haben wollen X-Achse von 1 bis 20. Ich habe versucht, axis(1, at=seq(1, 20)) zu verwenden, aber es hat nicht funktioniert. Was soll ich tun?

+0

Sie explizit die Grenzen Ihrer x-Achse in der 'plot' Rufaufbau. Sie legen sie so fest, dass sie vom Maximum zum Minimum von "Ergebnis" gehen, also etwa so, dass sie bei 0,76 beginnt und auf 0,18 heruntergeht. Dann möchten Sie Etiketten für die Ganzzahlen 1 bis 20 hinzufügen? Sie "funktionieren" ganz gut, sie sind nur weit von der Grenze der Handlung entfernt, wie Sie es definiert haben. – Gregor

+0

Wenn du die Punkte mit 1:20 beschriften willst, mit welchen x-Werten auch immer, dann solltest du 'at' benutzen, um den Ort anzugeben wo die Labels hingehen (vielleicht' sort (result) '?) Und das' Etiketten = 1: 20'. Weitere Informationen finden Sie in der '? Axis' -Dokumentation. – Gregor

+0

Ich möchte die x-Achse statt des Wertes 0,76, ..., 0,20, ..., wurde von 1 bis 20 nummeriert – Kim

Antwort

0

Hier ist eine Lösung mit minimalen Änderungen an Ihrem Beispiel. Grundsätzlich erstelle ich eine data.frame mit der Beobachtungsnummer. Da die Darstellung alle Beobachtungen in absteigender Reihenfolge abbildet, tue ich das auch für die neu erstellte data.frame. Dies ist, was ich in der axis Anruf verwende.

result <-c(0.6256767,0.6833695,0.7671350,0.5205373,0.4932262,0.5852338,0.5088692,0.3379572, 
    0.3420370,0.3029084,0.4677624,0.4822537,0.3047485,0.3852572,0.3186014,0.2009436, 
    0.1882227,0.2090007,0.2654110,0.3334744) 

result_df <-data.frame(my_order=1:length(result),result=result) #add column with initial observation number 
result_df <-result_df[order(result_df$result, decreasing = TRUE),] #decreasing order 

plot(cbind(result, result),xlim=c(max(result),min(result)), 
    ylim=c(min(result),max(result)), xaxt="n") 
axis(1, at=result_df$result,labels=result_df$my_order,cex.axis=0.6) 

enter image description here

+0

Vielen Dank! – Kim