不确定这是否超出Stack Overflow的范围。如果是的话,请告诉我。
我的输入data。
我试图想象(或执行一些尚未确定的分析)在468个不同捕获会话期间捕获的个体的大小分布。捕获会话标记为“id”,我创建了一个新列“newID”,为简单起见,编号为1:468的会话(如果有人对代码感兴趣,我做了一个很好的循环来创建这个新列)。我正在绘制的尺寸在“SL”栏中。
我还有专栏指定“日期”,“年”,“月”,“位置”和“溪”,在此期间发生了给定的捕获会话。数据肯定可以分成更小的部分(例如,有4条小溪,所以我可以为每条小溪做一个单独的小区),但我不想走那条路,除非这是我唯一的选择。 / p>
到目前为止,我已经完成了一个简单的初步绘图,该绘图由“Year”(仅为了简单起见,因此数据不会过于紧密堆叠)与以下代码完成:
library(ggplot2)
CreekDat <-read.table("CreekData.txt",header=TRUE)
CreekData4<-data.frame(CreekDat)
DOT <-ggplot(CreekData4,aes(newID,SL,color=factor(newID)))
DOT<-DOT+facet_grid(Year~.)
DOT<-DOT+stat_boxplot(aes(x = newID,y=SL))
DOT
得到了这个结果http://ufsnook.smugmug.com/photos/i-psJZ6kw/0/X3/i-psJZ6kw-X3.jpg
我想要显示大小分布的~500个事件有点多...我想知道是否有人知道任何其他可能适用于此数据的绘图选项,有任何建议在箱形图中工作我是目前正在使用,或者对我可以看到的非视觉分析有任何想法。
答案 0 :(得分:2)
这是一个有趣的。我最终将数据分箱并汇总。
require(ggplot2)
# read the file into a data frame
CreekData <-read.table("CreekData.txt",header=TRUE)
# fix the date
CreekData$Date <- as.POSIXct(paste(CreekData$Year,
CreekData$Month,
"1 12:00",
sep = "-"),
format = "%y-%m-%d %H:%M",
tz = "GMT")
# bin the size
CreekData$SL.binned <- cut(CreekData$SL,
breaks = c(seq(0,500,50),1000),
labels = c(paste(seq(0,450,50),
"-",
seq(50,500,50)),
">500"),
right = FALSE,
ordered_result = TRUE)
# add something we can sum!
CreekData$SL.bin.count <- rep(1,length(CreekData$SL.binned))
# aggregate it
CreekDataAg <- aggregate(x = CreekData$SL.bin.count,
by = list("Date" = CreekData$Date,
"Location" = CreekData$Location,
"SL.binned" = CreekData$SL.binned),
FUN = sum)
names(CreekDataAg)[4] <- "Count"
# plot it
p <- ggplot(data = CreekDataAg,
aes(x = Date,
y = SL.binned)) +
geom_tile(aes(fill = Count,
color = Count),
size = 0) +
facet_wrap(~Location) +
scale_fill_gradient(name = "Count",
low = "grey50",
high = "steelblue") +
scale_color_gradient(low = "grey50",
high = "steelblue") +
scale_y_discrete(drop=FALSE) +
labs(title = expression(atop("Count by size interval",
atop(italic("something else")))),
x = "Date",
y = "Size range") +
theme_bw(base_size = 8, base_family = "")
print(p)
然后你得到一个看起来像这样的情节:
需要一些工作来修复绘图中的颜色,但这不应该太难。
您还可以按ID进行分区,替换agrgegation中的Date
并使用newID
进行绘图。这让你......