Я пытаюсь нанести 2 элемента информации на график ggplot2
: контур поверхности и связь домена.Я хочу иметь контурные метки на контурном графике и легенду для доменов, но когда я добавляю прямые метки на свой график, я теряю легенду домена.Как мне заставить отображать оба?
Вот некоторые тестовые данные, чтобы показать мою проблему:
#Generate grid
grid_fit <- expand.grid(x = seq(from=1, to=10), y = seq(from=1, to=10))
#Generate sample data
data_test <- data.frame(x = grid_fit$x,y = grid_fit$y,z = grid_fit$x * grid_fit$y)
polygons_test <- data.frame(
Domain=rep(c("Domain 1", "Domain 2"), each=3),
x = c(1, 10, 10, 1, 1, 10), y = c(1, 1, 10, 1, 10, 10))
Я строю контурный график и закрашенные полигоны для доменов в ggplot:
# Plot the contour plot and polygons on top
library(ggplot2)
plot1 <- ggplot() +
geom_contour(data=data_test,
aes(x=x, y=y, z=z,colour=..level..),
na.rm=TRUE, show.legend=F) +
geom_polygon(data=polygons_test,
aes(x=x, y=y, group=Domain, fill=Domain), alpha=0.25)
print(plot1)
Затем я добавляю свои метки, и легенда исчезает с рисунка
# Print contour plot labels
library(directlabels)
plot2 <- direct.label.ggplot(plot1, "last.points")
print(plot2)
Я просмотрел документацию по direct.label и нашел функцию с именем uselegend.ggplot (p, ...) но это ничего не меняет в выходных цифрах.
# Use the direct.label function uselegend.ggplot to add legend to plot
plot3 <- uselegend.ggplot(plot2)
print(plot3)