Я изучаю ggplot2 и надеюсь использовать его для всего моего R-графика. Тем не менее, мне еще предстоит найти способ сделать контурный график, который выглядит аналогично обычному контуру, например, что можно получить с помощью решетки: fill.contour(). Например:Как сделать аналог графика ggplot2 с решеткой: fill.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"))
Это дает мне приятный контурный участок.
Теперь давайте попробуем то же самое в ggplot2. Лучшее, что я могу придумать, основываясь на все, что я прочитал (особенно Drawing labels on flat section of contour lines in ggplot2) является:
#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
Этот график имеет ту же самую основную идею, как filled.contour(), но цветные плитки не соответствуют к контурам очень хорошо.
Я не был успешным с изменением размеров плитки, либо.
Любые предложения о том, как сделать выход ggplot2 ближе к выходу fill.contour()?
Спасибо, MrFlick, для добавления графиков! – Wissenschaftler
Спасибо за предложение, @jlhoward. Когда я пытаюсь использовать geom = polygon с stat_contour(), я получаю полигональные контуры, но, возможно, я использую его неправильно. Например, 'ggplot (z.molten, aes (x, y, z = z)) + stat_contour (geom =" polygon ", bins = 6, aes (x, y, z = z))' делает контуры полигональными. – Wissenschaftler