我已经找了很长时间来回答这个问题,但我找不到答案.
问题在于:我有一个包含以下变量的数据框:流速1(CH_SONAR),流速2(CH_SONAR_2T),密度(CH_DENSITY)以及两种流速(per_diff)之间的百分比差异.我为流速1创建了一个5级因子,为密度创建了另一个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'))
Run Code Online (Sandbox Code Playgroud)
我使用每个因子作为填充变量使用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)
Run Code Online (Sandbox Code Playgroud)
现在我想用ggplot创建一个直方图,让我看到流速和密度之间的关系(水和非常低,非常低,低,Sparce和低等,对于所有25种可能的组合).我已经尝试创建新的因素,将d.factor和f.factor绑定到数据框,将两个因素绑定在一起等等没有结果,你们有任何想法如何解决这个问题吗?
我已经尝试过包括我制作的直方图,但我认为我没有足够的声誉去做.
感谢你的帮助!
我有一个名为d1的数据集类似于:
location, depth.from, depth.to, val, type
Run Code Online (Sandbox Code Playgroud)
我有一个循环,为每个独特的位置创建一个相当复杂的绘图(它将许多东西粘在一起使用grid.arrange,这就是为什么我不能facet_wrap在该位置使用以保持图的一部分的图例/颜色一致).
假设"类型"有4个类别,当一个位置具有不同数量的"类型"而不是另一个位置时,所分配的颜色在每个图之间不一致.我可以手动强制它们是相同的,但我试图概括这个功能.谷歌让我失望了.
对于以下块,d1是基于位置类型的数据的子集,例如
d1 <- subset(myData, location == location.list[i])
Run Code Online (Sandbox Code Playgroud)
看一下循环内的情节:
p1 <- ggplot(data = d1, aes (y=val, x=depth.from))+
layer(geom = "point", size = 2) +
geom_rect(data=d1, aes(xmin=Depth.to, xmax=Depth.from, ymin=0, ymax=100, fill = type), linetype =0, alpha=0.3)+
scale_fill_brewer(palette="Set1")
Run Code Online (Sandbox Code Playgroud)
geom_rect命令将通过数据并基于深度和深度来创建基于填充类型的叠加.我可以使用scale_fill_manual("Lith", c("Val1" = "DodgerBlue4"...)etc来手动设置它,但这会破坏目的.如果我有:类型喜欢我想要的东西:
Bird_one = blue
Bird_two = red
Bird_three = green
Run Code Online (Sandbox Code Playgroud)
我想bird_three成为绿色,即使bird_two不存在,也不必明确地使用它scale_fill_manual.有没有办法为调色板设置全局名称列表?也许通过以下方式提供数组:
myData <- read.csv("mydata.csv"
typeList <- unique(myData$type)
Run Code Online (Sandbox Code Playgroud) 我想对数据帧进行子集化,以便仅保留秒为偶数的观察值.
您可以在这里下载我的一小部分数据(100行).
前6行看起来像这样:
Timestamp C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12 C13 C14
1 2013-04-01 00:00:00 0 1 1 1 1 0 1 1 1 1 0 1 0 1
2 2013-04-01 00:00:01 0 1 1 1 1 0 1 1 1 1 0 1 0 1
3 2013-04-01 00:00:02 0 1 1 1 1 0 1 1 1 1 0 1 0 1
4 2013-04-01 00:00:03 0 1 1 1 …Run Code Online (Sandbox Code Playgroud)