2014-02-12 4 views
3

Я пытаюсь изменить илим в сюжете. Но как только я его смену, сюжет пропадает. Я не могу понять причину. Может ли кто-нибудь помочь мне объяснить причину проблемы?R: ggplot ylim не работает

>df<-data.frame(Category=c("A", "B", "C", "D", "B", "A", "D", "C"), Setup=c("X", "Y"), Gain=c(1.4, 1.45, 1.43, 1.48, 1.33, 1.37, 1.04, 1.09)) 
>p<-ggplot(df, aes(Setup, Gain)) + ylim(0.9, 1.25) + geom_bar(stat="identity") + facet_wrap("Category", ncol=2) 

Когда я извлекаю ylim(), приведенный выше код работает, но с ylim он не работает. Любая идея, в чем проблема?

Спасибо.

ответ

11

Заменить ylim(0.9, 1.25) с

coord_cartesian(ylim = c(0.9, 1.25)) 

Функция ylim также влияет на какие точки данных используются для построения графиков. Напротив, coord_cartesian не изменит базовые данные.

Полная команда:

ggplot(df, aes(Setup, Gain)) + 
    coord_cartesian(ylim = c(0.9, 1.25)) + 
    geom_bar(stat = "identity") + 
    facet_wrap("Category", ncol = 2) 

enter image description here

ylim подход приведет к следующим данным:

df[df$Gain >= 0.9 & df$Gain <= 1.25, ] 

    Category Setup Gain 
7  D  X 1.04 
8  C  Y 1.09 

Кроме того, будут удалены все стержни, так как они начинаются в 0.

+0

Это работает. Но в чем проблема с илим? Что такое ord_cartesian? –

+0

@RachitAgrawal 'ylim' также изменит базовые данные и удалит все значения за пределами указанного диапазона. –

+0

Я тоже пробовал ylim (0.5, 1.5), в котором все точки данных попадают в диапазон. Даже в этом случае он не работал. –

Смежные вопросы