R 在镶嵌面时对多个绘图重复值
我有一个data.frame,看起来像这样:R 在镶嵌面时对多个绘图重复值,r,ggplot2,facet,R,Ggplot2,Facet,我有一个data.frame,看起来像这样: > foo class type (0,10] (10,20] (20,30] (30,40] 1 A <NA> 0.6 0.2 0.1 0.1 2 B <NA> 0.7 0.1 0.1 0.1 3
> foo
class type (0,10] (10,20] (20,30] (30,40]
1 A <NA> 0.6 0.2 0.1 0.1
2 B <NA> 0.7 0.1 0.1 0.1
3 C 1 0.5 0.4 0.1 0.0
4 C 2 0.5 0.3 0.1 0.1
5 D 1 0.7 0.3 0.0 0.0
6 D 2 0.7 0.2 0.0 0.1
7 E 1 0.4 0.3 0.2 0.1
8 E 2 0.5 0.3 0.1 0.1
事实上,facet\u grid()
创建了3个图形,但我希望以某种方式“忽略”类A和B是类型,并在类型1和类型2的facet中显示它们,并且只获得2个图形(事实上,A和B值应该重复):
我尽量避免手动修改并使用类型1和2复制A和B,因为我需要原始的data.frame,就像其他图形/测试一样
(很抱歉,列的顺序是随机的,我在家里使用的版本与工作中使用的版本不同,我不知道为什么会出现这种情况)由于
ggplot
的原理,您将不得不进行数据复制:图中的每个项目恰好代表一个数据点。因此,如果希望将NA
数据分为两个方面,则需要为每个原始数据项创建两个数据点
如果要避免仅为打印而显式创建临时数据,可以创建一个函数来为您执行数据复制。大致如下:
distribute.na.type <- function(dat) {
rbind(
transform(subset(dat, type %in% c(1, NA)), type=1),
transform(subset(dat, type %in% c(2, NA)), type=2)
)
}
distribute.na.type由于ggplot
的原理,您将不得不进行数据复制:plot中的每个项目恰好代表一个数据点。因此,如果希望将NA
数据分为两个方面,则需要为每个原始数据项创建两个数据点
如果要避免仅为打印而显式创建临时数据,可以创建一个函数来为您执行数据复制。大致如下:
distribute.na.type <- function(dat) {
rbind(
transform(subset(dat, type %in% c(1, NA)), type=1),
transform(subset(dat, type %in% c(2, NA)), type=2)
)
}
distribute.na.type您希望type
的每个na值同时出现在A类和B类中(即,您希望复制na数据)?请通过添加用于融化数据和生成绘图的特定代码来澄清此问题。颜色的随机顺序非常奇怪。您使用的是哪个版本的ggplot2
?在家里我使用了ggplot 0.9.3.1和r2.15.0,在工作中使用了ggplot 0.9.3和r2.15.2。我怀疑我在家中使用的版本不完全兼容。是否希望类型
的每个NA值同时出现在A类和B类中(即,您希望复制NA数据)?请通过添加用于融化数据和生成绘图的特定代码来澄清此问题。颜色的随机顺序非常奇怪。您使用的是哪个版本的ggplot2
?在家里我使用了ggplot 0.9.3.1和r2.15.0,在工作中使用了ggplot 0.9.3和r2.15.2。我怀疑我在家中使用的版本不完全兼容。如果数据重复不可避免,此解决方案效果良好,谢谢!如果数据重复不可避免,此解决方案效果良好,谢谢!