2 факторный анализ гистограммы
Я долго искал ответ на эту проблему, и я не смог найти ответ.
вот проблема: у меня есть фрейм данных со следующими переменными: расход 1 (CH_SONAR), расход 2 (CH_SONAR_2T), плотность (CH_DENSITY) и процентная разница между двумя расходами (per_diff). Я создал 5-уровневый коэффициент для расхода 1 и еще 5-уровневый коэффициент для плотности.
f.factor <- cut(p.pipeline$CH_SONAR_2T, 5, labels = c('Very Low','Low', 'Medium', 'High', 'Very High'))
d.factor <- cut(p.pipeline$CH_DENSITY, 5, labels = c('Water', 'Very Sparce', 'Sparce', 'Dense', 'Very Dense'))
Я построил оба с помощью ggplot2, используя каждый фактор в качестве переменной заполнения:
qplot(per_diff, data = p.pipeline, geom = "histogram", binwidth = 1, xlim = c(-5, 15), fill = f.factor)
qplot(per_diff, data = p.pipeline, geom = "histogram", binwidth = 1, xlim = c(-5, 15), fill = d.factor)
теперь я хотел бы создать гистограмму с ggplot, которая позволяет мне видеть связь между расходом и плотностью (вода и очень низкая,очень разреженная и низкая, разреженная и низкая и т. д. для всех 25 возможных комбинаций). Я пробовал создавать новые факторы, связывающие d.фактор и f.фактор к рамке данных, связывая два фактора вместе и т. д. и никаких результатов, у вас есть идеи, как к этому подойти?
Я пробовал включить гистограммы, которые я произвел, но я не думаю, что у меня достаточно репутации, чтобы сделать это.
Спасибо за вашу помощь!
1 ответов
можно использовать fill=interaction(f.factor, d.factor)
. Комбинации, которые не отображаются в легенде, например " Low.Очень скудные " указывают на то, что нет наблюдения, принадлежащего к обеим этим категориям.
Если вы хотите, чтобы цвета соседних уровней выделялись больше, одна вещь, которую вы можете сделать, это генерировать цвета с rainbow
, затем замените каждый другой цвет на противоположный на колесе.
col <- rainbow(length(levels(interaction(f.factor, d.factor))), v=.75, s=.5)
col.index <- ifelse(seq(col) %% 2,
seq(col),
(seq(ceiling(length(col)/2), length.out=length(col)) %% length(col)) + 1)
mixed <- col[col.index]
qplot(per_diff, data = p.pipeline,
geom = "histogram", binwidth = 1, xlim = c(-5, 15),
fill = interaction(f.factor, d.factor)) + scale_fill_manual(values=mixed)