Ich habe gelernt, ggplot2, und hoffe, es für alle meine R-Grafik verwenden. Ich habe jedoch noch keine Möglichkeit gefunden, ein Konturdiagramm zu erstellen, das einem herkömmlichen Konturdiagramm ähnelt, wie es mit gridt: fill.contour() erhalten werden kann. Zum Beispiel:Wie man ein ggplot2 Konturdiagramm analog zum Gitter macht: filled.contour()?
#define data
x<-seq(1,11,1)
y<-seq(1,11,1)
xyz.func<-function(x,y) {-10.4+6.53*x+6.53*y-0.167*x^2-0.167*y^2+0.0500*x*y}
#contour plot using lattice graphics and R Color Brewer
library(lattice) #for filled.contour()
library(RColorBrewer) #for brewer.pal()
z.lattice<-outer(x,y,xyz.func)
filled.contour(x,y,z.lattice,nlevels=6,col=brewer.pal(6,"YlOrRd"))
Dies gibt mir eine schöne Kontur Plot.
Jetzt wollen wir die gleiche Sache in ggplot2 versuchen. Das Beste, was ich mit oben kommen kann, basierend auf alles, was ich gelesen habe (vor allem Drawing labels on flat section of contour lines in ggplot2) ist:
#contour plot using ggplot2
library(ggplot2)
library(reshape2) #for melt()
z.molten<-melt(z.lattice)
names(z.molten) <- c("x", "y", "z")
v<-ggplot(z.molten, aes(x,y,z=z))+
geom_tile(aes(fill=z))+
stat_contour(bins=6,aes(x,y,z=z), color="black", size=0.6)+
scale_fill_gradientn(colours=brewer.pal(6,"YlOrRd"))
v
Dieser Graph, der die gleiche Grundidee wie filled.contour hat(), aber die farbigen Fliesen nicht entsprechen zu den Konturen sehr gut.
habe ich die Größen der Fliesen mit wechselnden, entweder nicht erfolgreich gewesen.
Haben Sie Vorschläge, wie Sie die Ausgabe von ggplot2 näher an die Ausgabe von filled.contour() bringen?
Danke, MrFlick, für das Hinzufügen der Graphen! – Wissenschaftler
Danke für den Vorschlag, @jlhoward. Wenn ich versuche, geom = polygon mit stat_contour() zu verwenden, lande ich mit polygonalen Konturen, aber vielleicht benutze ich es falsch. Zum Beispiel 'ggplot (z.molten, aes (x, y, z = z)) + stat_contour (geom =" Polygon ", bins = 6, aes (x, y, z = z))' macht die Konturen polygonal. – Wissenschaftler