Bir raster çizdirmek istiyorum, böylece ölçek sınırları dışındaki değerler, ölçeklerin aynı renklerini kendileriyle sınırlar.ggplot'ta sınırlar olarak sınırları dışına boyama
# Generate data
pp <- function (n,r=4) {
x <- seq(-r*pi, r*pi, len=n)
df <- expand.grid(x=x, y=x)
df$r <- sqrt(df$x^2 + df$y^2)
df$z <- cos(df$r^2)*exp(-df$r/6)
df
}
pp200 <- pp(200)
ggplot(pp200, aes(x, y, fill = z)) +
geom_raster() +
scale_fill_gradient2(limits=c(-0.5, 0.5))
Tüm değerler grey50
(na.value
) vardır!
Ben de scale_fill_gradient2()
seçenekleri ile denedim: Şu anda eşleştirilir bağlı değerlerin out renklendirebilirsiniz nasıl
oob=squish #This does not seem to exists anymore
ve
oob=function(x, ...) x #does nothing
ve
oob=clip #this does not work:
#Error in f(...) : argument "x2" is missing, with no default
NA'ya, skalanın limit değerleri ile mi? Yukarıdaki örnekte > 0.5
değerleri mavi, < -0.5
kırmızı olmalıdır. Bunu veri kümesini keserek, faktörleri kullanarak yapabilirim, ama sürekli bir renk skalası istiyorum. Gösterilen limitleri ayarlamak için de molalar kullanabilirim, ancak komplo içeriğinden bağımsız olarak tam renk skalasının görüntülenmesini istiyorum. Mümkünse verilerin değiştirilmesini de engellemek isterim.
@Axeman Verilere göre oob işlevi mi yoksa modifikasyon mu demek istiyorsunuz? Evet tabi ki verileri değiştirebilirim, ama bundan kaçınmak isterim. Nedeni, örneğin, bir 'stat_summary()' kullanmak istersem, vidalanır. Evet, bu konuda çalışabilirim, ama basit olması gereken bir şey için biraz fazla hackish gibi görünüyor (ve oob = squish' kullanarak önceki ggplot sürümlerinde çalıştı) (işte bu şekilde çalışmaz) oob = function (z) ifelse (z <0.5, ifelse (z> -0,5, z, -0,5), 0,5) ') – AF7