Добавьте вертикальную строку с другим прерыванием для каждой панели в ggplot2

Это о зависимостях. Вы хотите, чтобы Ваш код зависел от интерфейсных типов вместо конкретных типов в соответствующих случаях. Например, у Вас могло бы быть несколько конкретных типов, что все выполняют подобное поведение, но реализуют его по-другому. Вы хотите, чтобы Ваша кодовая база имела зависимости от тех нескольких конкретных типов или один интерфейс? Как гибкий Вы думаете, что Ваша кодовая база будет, когда необходимо будет внести изменения?

К Вашей точке о не желании использовать общедоступных участников при помощи состава, я сказал бы, что Вы просто инкапсулируете ненужные зависимости. Если Вы хотите использовать состав, то Вы значительно уменьшаете зависимости путем создания интерфейсных типов вместо конкретных типов.

Для лучшего объяснения, попытайтесь смотреть на литературу по инверсия управления .

14
задан yoyoyoyosef 29 October 2009 в 15:51
поделиться

2 ответа

Один из способов - создать data.frame со средними значениями заранее.

library(reshape)
dfs <- recast(data.frame(cat1, cat2, val), cat1+cat2~variable, fun.aggregate=mean)
qplot(val, data=df, geom="histogram", binwidth=0.2, facets=cat1~cat2) + geom_vline(data=dfs, aes(xintercept=val), colour="red") + geom_text(data=dfs, aes(x=val+1, y=1, label=round(val,1)), size=4, colour="red")
9
ответ дан 1 December 2019 в 12:13
поделиться

Я предполагаю, что это переработка @ Eduardo действительно, но в одной строке.

ggplot(df) + geom_histogram(mapping=aes(x=val)) 
  + geom_vline(data=aggregate(df[3], df[c(1,2)], mean), 
      mapping=aes(xintercept=val), color="red") 
  + facet_grid(cat1~cat2)

Text Text http://www.imagechicken.com/uploads/1264782634003683000.png[121683000.png

Plyr Plyr ( Требование (PLYR) Пакет автором GGPLOT , Хэдли):

ggplot(df) + geom_histogram(mapping=aes(x=val)) 
  + geom_vline(data=ddply(df, cat1~cat2, numcolwise(mean)), 
      mapping=aes(xintercept=val), color="red") 
  + facet_grid(cat1~cat2)

Кажется неудовлетворительным, что влайн не разрезается на грани, я не уверен, почему.

15
ответ дан 1 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: