2010-11-28 8 views
1

Ich möchte Daten aus verschiedenen Datenrahmen mit ggplot plotten. Ich habe jedoch Probleme mit diskreten und kontinuierlichen Skalen.Einsatzfaktoren und Variablen bei gleicher Skalierung möglich?

Lassen Sie uns sagen, dass wir diese Daten verwenden möchten:

x <- rnorm(9,5) 
y <- rnorm(9,5) 
f1 <- rep(c("a","b","c"),3) 
df1 <- data.frame(x,y,f1) 
x <- rnorm(9,5) 
y <- rnorm(9,5) 
f2 <- rep(c("d","e","f"),3) 
df2 <- data.frame(x,y,f2) 

Ich möchte beide Datenrahmen auf einem Grundstück zeigen. df1 $ f1 und f2 df1 $ ist sowohl für die Farben der Punkte verantwortlich:

p <- ggplot(df1,aes(x,y)) 
p <- p + geom_point(aes(colour=f1)) 
p <- p + geom_point(data=df2,aes(x,y,colour=f2)) 
p 

Dies funktioniert.

Allerdings, wenn ich diese Daten haben:

x <- rnorm(9,5) 
y <- rnorm(9,5) 
f1 <- rep(c("a","b","c"),3) 
df1 <- data.frame(x,y,f1) 
x <- rnorm(9,5) 
y <- rnorm(9,5) 
quan <- rnorm(9,1) 
df2 <- data.frame(x,y,quan) 

dieses Grundstück nicht funktioniert:

p <- ggplot(df1,aes(x,y)) 
p <- p + geom_point(aes(colour=f1)) 
p <- p + geom_point(data=df2,aes(x,y,colour=quan)) 
p 

Error: Continuous variable() supplied to discrete scale_hue. 

f1 als Faktor, quan ein numerischer Wert ist, und es scheint logisch, dass sie kann nicht mit der gleichen Skalierung verwendet werden. Aber wie kann ich eine separate Skala für jeden Datenrahmen definieren? Oder ist das vielleicht nicht möglich?

Ich versuchte mit scale_colour_discrete und scale_colour_continuous, aber es scheint, als ob nur eine der beiden Skalen für eine Handlung verwendet werden kann.

+0

Es gibt einige Fehler in Ihrem Beispielcode. f und quan existieren nicht. Sind das f1 und f2? – kmm

+0

Danke, dass Sie darauf hingewiesen haben. Ich habe den Code in der Frage korrigiert ... – donodarazao

+0

Können Sie uns zeigen, was "Quan" ist? Es gibt immer noch einen Fehler im obigen Code. Versuchen Sie es selbst zu kopieren und einzufügen. –

Antwort

2

Sie können nur eine Art von Skala pro Diagramm haben. Im ersten Beispiel ist die Skalierung in beiden Fällen ein Faktor, sodass Sie keinen Fehler erhalten.

Für das zweite Beispiel ist einer für eine kontinuierliche Variable (f) und der andere ist für einen Faktor (Quan). Wenn Sie versuchen, 'quan' zu übergeben, erwartet ggplot eine kontinuierliche Variable anstelle eines Faktors und gibt Ihnen die Fehlermeldung.

Sie sollten versuchen, zu vereinfachen, indem Sie zuerst rbind() verwenden und dann plotten. Aber stellen Sie sicher, dass Ihre Daten auf die gleiche Weise formatiert sind. Wenn rbind fehlschlägt, liegt das daran, dass Sie nicht ähnlich strukturierte Datenrahmen an es übergeben:

df3 <- rbind(df1,df2) 
p <- ggplot(df3, aes(x,y,colour=f) + geom_point() 
+0

Ich sollte kommentieren, dass Sie nur eine Skala für jede Farbe und Größe pro Diagramm haben können. –

+0

Vielen Dank für Ihre Antwort und Entschuldigung für meine späte Antwort. Ich habe versucht, ggplot für ein fortgeschrittenes Mapping zu verwenden, aber die Beschränkung einer Skala/eines Diagramms erlaubt nicht, sehr tief in diese Richtung zu gehen. Aber ich denke, deshalb gibt es eine spezielle GIS-Software ...;) – donodarazao

Verwandte Themen