我试图绘制使用以下casbon的解决方案的csv数据GGPLOT2热图中ggplot2热图:如何保留标签的顺序?
问题是X-标签尝试重新排序本身。例如,如果我在该示例数据中交换标签COG0002和COG0001,则x标签仍按排序顺序排列(cog0001,cog0002,cog0003 .... cog0008)。
反正有防止这种情况吗?我想它在csv文件
感谢
页
我试图绘制使用以下casbon的解决方案的csv数据GGPLOT2热图中ggplot2热图:如何保留标签的顺序?
问题是X-标签尝试重新排序本身。例如,如果我在该示例数据中交换标签COG0002和COG0001,则x标签仍按排序顺序排列(cog0001,cog0002,cog0003 .... cog0008)。
反正有防止这种情况吗?我想它在csv文件
感谢
页
如果您想直接从csv文件保持这个顺序:
foomelt$COG <- factor(foomelt$COG, levels = as.character(foo[[1]]))
在这种情况下不是问题,但是在重复条目的情况下应该有'unique(as.character(foo [[1]]))'。 – Marek 2010-06-07 15:27:55
你尝试绘制之前重新排序因子水平可以订购? 例如
foomelt$COG = factor(foomelt$COG,levels(foomelt$COG)[c(2,1,3:8)])
(我不能尝试,现在,所以我不能肯定它的工作原理)
我不认为我可以手动订购,因为我的数据大约有100多点。 – 2010-06-07 14:34:37
如果我记得,当使用默认级别参数调用factor(x)时,级别设置为levels = sort(unique(x))。
您可以通过设置levels = unique(x)来覆盖此操作。
例如:
set.seed(1)
x = sample(letters, 100, replace = TRUE)
head(x, 5)
[1] “G”, “J” “○” “×”, “F”
levels(factor(x))
[1] “A” “B”“C “d”“e”“f”“g”“h”“i”“j”“k”“l”“m”“n”“o”“p”“q”“r”“s”
[20] “T” 的 “u”, “v”, “W” 的 “x” “y” 的 “Z”
levels(factor(x, levels = unique(x)))
[1]“g”“j”“o”“x”“f”“y”“r”“q”“b”“e”“u”“m”“s”“z”“d” “K”, “一个”, “W” 的 “i”
[20] “p”, “v”, “C” 的 “n”, “t” 的 “L”, “H”
可以看到,设置电平= unique(x)保留数据中出现的顺序。
下面有很好的答案。这是一个小心,在研究这个问题时,你可能会遇到'有序因素'。除非你知道你在做什么,否则不要使用它。按照特定的顺序和使用有序因子来设置关卡并不是一回事。例如,有序因素会导致一些建模软件默认为多项式而不是治疗效果。 – John 2010-06-07 15:48:35