2015-05-15 9 views
17

Ich habe Labels auf der y-Achse, weil nur die relative Menge ist wirklich wichtig.In R-Basis-Diagramm, bewegen Achse Etikett näher an Achse

w <- c(34170,24911,20323,14290,9605,7803,7113,6031,5140,4469) 
plot(1:length(w), w, type="b", xlab="Number of clusters", 
    ylab="Within-cluster variance", 
    main="K=5 eliminates most of the within-cluster variance", 
    cex.main=1.5, 
    cex.lab=1.2, 
    font.main=20, 
    yaxt='n',lab=c(length(w),5,7), # no ticks on y axis, all ticks on x 
    family="Calibri Light") 

cluster plot

lässt jedoch Achse viel weißen Raum zwischen der y-Achse Etikett („Innerhalb-cluster Varianz“) und die y jene tick Etiketten zu unterdrücken. Gibt es eine Möglichkeit, es zurück zu schieben? Wenn ich irgendwie die (unsichtbaren) Tickbeschriftungen auf innerhalb der der Achse setzen würde, würde sich die Achsenbeschriftung entlang der Achse setzen?

+3

Versuchen 'ylab' aus' plot' verlassen und es in 'axis' stattdessen mit etwas Platzierung Option setzen. (Kann die Optionen nicht von Hand abrufen.) Ie.e, 'plot (...); Achse (2, ...) ' –

Antwort

27

Versuchen ylab="" in Ihrem plot Rufs und verwenden title manuell die Beschriftung der y-Achse. Mit line Sie die Position des Etiketts anpassen konnte, z.B .:

plot(1:length(w), w, type="b", xlab="Number of clusters", ylab="", 
    main="K=5 eliminates most of the within-cluster variance", 
    cex.main=1.5, 
    cex.lab=1.2, 
    font.main=20, 
    yaxt='n',lab=c(length(w),5,7), # no ticks on y axis, all ticks on x 
    family="Calibri Light") 

title(ylab="Within-cluster variance", line=0, cex.lab=1.2, family="Calibri Light") 

enter image description here

Bitte lesen Sie ?title für weitere Details.

+2

Ah Mann, ich war gerade dabei, genau dieses Ding zu posten. Ich hatte alles aufgeschrieben, aber ich versuchte herauszufinden, warum R unter Windows mir nicht erlaubte, die Schriftart zu ändern. Wie auch immer, nette Arbeit. –

+0

@sgibb vielen Dank, dass Sie mir beigebracht haben, dass 'title' für Labels verwendet werden kann (nicht nur um' main' zu setzen). Ich habe zwei 'title' Anweisungen verwendet, eine um" ylab "durch" line = 1 "zu ersetzen und eine um' xlab' etwas näher bei 'line = 2.2' zu bekommen. Sehr geschätzt. – C8H10N4O2

17

mgp einstellen, siehe ?par

title(ylab="Within-cluster variance", mgp=c(1,1,0), family="Calibri Light",cex.lab=1.2) 

enter image description here