2016-07-19 6 views
6

Ich habe versucht, eine Reihe von Punkten in R, und ich verwende type="b" als eine Plot-Option. Zwischen den Punkten und den Linien zwischen ihnen gibt es jedoch viel Polsterung (Leerraum), so dass die Linie zwischen einigen Punkten vollständig verschwindet. Sie ist ein Bild, wie es aussieht:Wie Padding zwischen Linien und Punkte in R "beiden" Typ Plots zu verringern

example of disappearing lines

habe ich versucht, die Punkte kleiner mit der cex Plot Option zu machen, aber das hilft nicht, da es nur die Größe der Punkte ändert und nicht dort, wo die Linien zwischen den Punkten zwischen diesen beginnen und enden. Ich weiß nicht, ob das einen Unterschied macht, aber die Symbole, die ich verwende, sind pch=1.

Ich bin interessiert zu wissen, ob es möglich ist, diese Polsterung zu reduzieren, und wie Sie dies tun. Ich bin nicht daran interessiert, type=o stattdessen als Plot-Option zu verwenden.

+0

Nur aus Neugier, warum aren‘ Sie interessieren sich für "type =" o "'. In der Basisgrafik scheint es der einfachste Weg zu sein, um das zu bekommen, wonach Sie suchen. – eipi10

+0

@ eipi10: Ich wusste nicht über die 'bg'-Option, und ohne diese sah es nicht in der Nähe was ich wollte. Ich finde es etwas schwierig, Hilfe zu finden, da es unendlich viele Parameter und wenig Platz gibt, um sie zu beschreiben. Ich würde mich nicht wundern, wenn einer von ihnen gerade sagte * Hauptsächlich harmlos *. – Kristian

+0

Nun, zumindest ist es abzählbar unendlich. Für die Punktmarker können Sie '' pch'' und scrollen Sie nach unten, um zu sehen, was verfügbar ist (Sie können auch [Unicode-Symbole] (http://stackoverflow.com/a/30743128/496488) verwenden, um eine viel größere Palette von zu erhalten Markierungsoptionen). Ich stimme den Hilfedateien zu. Als ich anfing, R zu benutzen, fand ich die Hilfedateien etwas verwirrend. Sie wurden langsam nützlicher, als ich eine Intuition darüber entwickelte, wie R funktioniert. – eipi10

Antwort

3

Mit einem Datenrahmen genannt dfs scheint, einen Mechanismus zu liefern, um die umliegende „weißen Halo“ Einstellen der gewünschten Größe des Punktes ein Halo Sie durch Einstellung wollen die Werte der weißen und schwarzen Punkte ‚CEX‘:

plot(y~x,data=dfs, type="l") 
    with(dfs, points(x,y, pch=16,col="white",cex=1.4)) 
    with(dfs, points(x,y,cex=1)) 
4

Gibt es einen bestimmten Grund, warum Sie nicht type="o" verwenden möchten? Es scheint, wie der einfachste Weg, um den gewünschten Effekt zu erhalten:

# Fake data 
set.seed(10) 
dfs = data.frame(x=1:10, y=rnorm(10)) 

plot(y~x,data=dfs, type="o", pch=21, bg='white') 

pch=21 ist ein Kreis Marker wie pch=1, aber mit den beiden Grenz und füllen. Wir setzen die Füllung auf Weiß mit bg="white", um die Linien, die durch die Punktmarkierungen gehen, zu "verdecken".

enter image description here

Sie können auch cex verwenden, um die Markierungsgröße zu ändern Überschneidungen zu vermeiden und die Linien zwischen benachbarten Punkten sichtbar machen:

set.seed(10) 
dfs = data.frame(x=1:100, y=cumsum(rnorm(100))) 

plot(y~x,data=dfs, type="o", pch=21, bg="white", cex=0.6) 

enter image description here