首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >2因子直方图分析

2因子直方图分析
EN

Stack Overflow用户
提问于 2013-04-03 04:46:49
回答 1查看 923关注 0票数 8

我已经寻找这个问题的答案很长一段时间了,但我一直没有找到答案。

问题是:我有一个包含以下变量的data frame:flow rate 1 (CH_SONAR)、flow rate 2 (CH_SONAR_2T)、density (CH_DENSITY)和两个flow rate之间的百分比差(per_diff)。我已经为流速1创建了一个5级因子,并为密度创建了另一个5级因子。

代码语言:javascript
复制
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绘制了这两个图,并使用每个因子作为填充变量:

代码语言:javascript
复制
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.factor和f.factor绑定到数据框架,将这两个因子绑定在一起,等等,但都没有结果,你们知道怎么做吗?

我已经尝试包含我生成的直方图,但我不认为我有足够的声誉来做这件事。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-03 04:55:38

您可以使用fill=interaction(f.factor, d.factor)。没有出现在图例中的组合,例如'Low.Very Sparce‘,表示没有属于这两个类别的观察值。

如果你想要相邻级别的颜色更加突出,你可以做的一件事是用rainbow生成颜色,然后在轮子上用相反的颜色交换其他颜色。

代码语言:javascript
复制
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)

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15774017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档