R Hinzufügen von Legenden und Direktbeschriftungen zum Konturdiagramm von ggplot2

Ich habe eine Rasterkarte, die ich mit ggplot2 auf einer kontinuierlichen Skala und mit beschrifteten Isolinien zeichnen möchte.

Damit ich das DirectLabels-Paket verwende und kurz davor bin, das zu bekommen, was ich will, aber ich kann nicht sowohl die Legende als auch die beschrifteten Isolinien auf derselben Karte erhalten

Der folgende Code gibt mein Problem wieder:

install.packages(c('ggplot2', 'directlabels'))
library('ggplot2')
library('directlabels')
df <- expand.grid(x=1:100, y=1:100)
df$z <- df$x * df$y

# Plot 1: this plot is fine but without contours    
p <- ggplot(aes(x=x, y=y, z=z), data = df) + 
     geom_raster(data=df, aes(fill=z)) +
     scale_fill_gradient(limits=range(df$z), high = 'white', low = 'red')
p

# Plot 2: This plot adds the isolines but no labels and it also adds a second legend for level which I don't want
p <- p + geom_contour(aes(colour = ..level..), color='gray30', na.rm=T,     show.legend=T)
p

# Plot 3: This plot has the labeled isolines but it removes the z legend that I want to show
direct.label(p, list("bottom.pieces", colour='black'))

Plot 1

Plot 2

Plot 3

Ich möchte das farbige Raster im Hintergrund haben, mit der Farblegende auf der Seite und den beschrifteten Isolinien oben. Gibt es eine Möglichkeit, dies zu tun?

Gibt es auch eine Möglichkeit, die Beschriftungen in der Mitte der Isolinien anstelle der unteren oder oberen zu platzieren?

Danke im Vorau

Pablo

Antworten auf die Frage(2)

Ihre Antwort auf die Frage