2015-02-24 9 views
5

ggplot2's geom_density() işlevinin ggvis'in layer_densities() davranışını taklit etmesinin bir yolu var mı? Yani 'a benziyor (aşağıya bakın) xlim() aramasına gerek kalmadan? Özellikle, yoğunluk eğrisinin kuyruklarını düzgünleştiren görünümü tercih ediyorum.x sınırlarının ayarlanması xlim() in ggplot2 geom_density() mimic ggvis layer_densities() davranışı

library(ggvis) 
library(ggplot2) 

faithful %>% 
    ggvis(~waiting) %>% 
    layer_densities(fill := "green") -> p1 

ggplot(faithful, aes(x = waiting)) + 
    geom_density(fill = "green", alpha = 0.2) -> p2 

ggplot(faithful, aes(x = waiting)) + 
    geom_density(fill = "green", alpha = 0.2) + 
    xlim(c(30, 110)) -> p3 

p1 
p2 
p3 

ggvis Çıktı: p1

ggplot2 "varsayılan": p2

ggplot2 "istenen": p3

Not: Bir ggvis aşağıdaki yoluyla ggplot2 taklit yapabilirsiniz (trim=TRUE kullanarak, ancak diğer yöne gitmek istiyorum ...

faithful %>% 
    compute_density(~waiting, trim=TRUE) %>% 
    ggvis(~pred_, ~resp_) %>% 
    layer_lines() 
+0

Neden xlim argümanı kaçınıyor? Çözümün genel olarak yeterli olmayacağı endişeniz mi var? –

+0

@ RomanLuštrik doğru - Daha genel bir çözüm arıyorum. – JasonAizkalns

cevap

6

xlim numaralı telefonu arama konusunda, ancak program aracılığıyla tanımlanmış olan sınırlarla nasıl?

l <- density(faithful$waiting) 
ggplot(faithful, aes(x = waiting)) + 
    geom_density(fill = "green", alpha = 0.2) + 
    xlim(range(l$x)) 

enter image description here

olumsuz olsa çift yoğunluklu tahmini olduğunu, böylece akılda tutmak.