2016-07-13 7 views
0

ich eine Kurve zu zeichnen versuchen:Grundstück(): Beschriftungen auf dem Y-Achse

X-axis: species (setosa,versicolor,virginica) 
Y-axis: Sepal.Length 

auf dem Datensatz drei Spalten von Iris-Datensatz enthält: Sepal.Length, Sepal.Width, Species

Ich möchte, dass die Y-Achse die Namen von Spezies sind, aber stattdessen zeigt es Faktorwerte. Ich habe den Befehl versucht:

plot(x = file$Sepal.Length, y = levels(file$Species), col = file$Species) 

Gibt es eine Methode, um die eindeutigen Textwerte als Y-Achse mit Plot() -Funktion anzuzeigen?

+0

Zuerst fragen Sie nach y-Achse == Sepal.Length, dann sind Sie Code y = Species ??? Könnte besser sein, 'boxplot' zu verwenden mit' horizontal = TRUE' –

+0

Entschuldigung, ich tippte falsch, während ich die Frage stellte. der Code ist richtig, so wollte ich die Achse. –

Antwort

1

Sie können yaxt='n' an den ersten Aufruf plot() übergeben, um das automatische Zeichnen der Y-Achse zu verhindern, und dann axis() aufrufen, um die gewünschte Y-Achse manuell zu zeichnen.

data(iris); 
plot(iris$Sepal.Length,iris$Species,xlab='lol',ylab='lola',col=iris$Species,yaxt='n'); 
axis(2L,seq_len(nlevels(iris$Species)),levels(iris$Species)); 

plot

+0

Danke, es hat funktioniert. –

+1

Wenn dies wirklich die Anfrage war (und ich vermute nicht), wie wäre es dann mit 'y = Jitter (as.numeric (iris $ Species))'? –