Ich versuche, eine Rasterkarte mit einigen Daten und Rand Plots dieser Daten zu plotten. Art von wie die levelplot()
rasterVis
Funktion, oder noch besser mit Farben (die Farben innerhalb der Handlung widerspiegeln) statt mit einer Linie. Es wird im Folgenden klar sein, was ich versuche zu tun. rasterVis
Beispiel (mit Dichte Linie):Plotten Rand Plots für geom_ Raster() in ggplot2
Allerdings möchte ich ggplot2 verwenden. Laden Sie die data used in this example (8KB) herunter.
Ich versuchte grid.arrange()
zu verwenden:
library(ggplot2)
library(raster)
library(maps)
library(grid)
library(scales) #for muted()
library(gridExtra)
load("example.Rsave") #load data
#prepare data for the margin plot
var=tp_rlim; min=0; max=1; mid=0.5
varname <- colnames(var)[3]
zonal <- aggregate(var[,3], list(var$Lat), mean)
colnames(zonal) <- c("Lat", varname)
#plot the margin plot
ggzonal <- ggplot(zonal, aes(x="", y=Lat, fill=tp))+
geom_raster() +
theme(legend.position="none",
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.ticks = element_blank(),
axis.text.x = element_blank(),
axis.text.y = element_blank()
) +
scale_fill_gradient2(limits=c(min, max), space="Lab", midpoint=mid)
#plot main plot
gg <- ggplot(var, aes_string(x="Lon", y="Lat", fill=varname)) +
geom_raster() +
coord_quickmap(xlim = range(var$Lon), ylim = range(var$Lat)) +
scale_fill_gradient2(limits=c(min, max), space="Lab", midpoint=mid) +
theme(legend.position="bottom",
legend.key.width = unit(1.5, "cm"),
legend.key.height = unit(0.3, "cm"),
legend.title=element_blank()
) +
borders(region=unique(na.omit(map.where("world", var$Lon, var$Lat))), colour="black")
grid.arrange(gg, ggzonal, ncol=2, widths=c(5, 1))
Aber das Ergebnis ist nicht zufriedenstellend:
ich auch ggExtra::ggMarginal
zu verwenden versucht, aber:
ggExtra::ggMarginal(gg)
Oder
:
ggExtra::ggMarginal(gg, type="histogram")
Wie kann ich das tun?
Sie sehen jedoch, die rechte Spalte ist leicht, etwas kürzer? Ich bin ein Perfektionist, leider, und kann damit nicht umgehen :( – AF7
das Panel hat die richtige Größe, so denke ich, dass etwas stimmt nicht mit den Daten in diesem Plot. – baptiste
tatsächlich hatte die RHS-Plot nicht die gleichen y Grenzen als der andere – baptiste