我正试图在casbon的解决方案中使用csv数据在ggplot2中绘制热图
问题是x-label尝试重新排序自己。例如,如果我在该示例数据中交换标签COG0002和COG0001,则x标签仍然按排序顺序出现(cog0001,cog0002,cog0003 .... cog0008)。
反正有没有阻止这个?我想在csv文件中订购它
感谢
PP
答案 0 :(得分:5)
如果我记得,当使用默认级别参数调用factor(x)时,级别设置为levels = sort(unique(x))。
您可以通过设置levels = unique(x)来覆盖此操作。
例如:
set.seed(1)
x = sample(letters, 100, replace = TRUE)
head(x, 5)
[1]“g”“j”“o”“x”“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“”a“”w“”我“
[20]“p”“v”“c”“n”“t”“l”“h”
您可以看到设置levels = unique(x)可以保留数据中出现的顺序。
答案 1 :(得分:4)
如果您想直接从csv文件中保留订单:
foomelt$COG <- factor(foomelt$COG, levels = as.character(foo[[1]]))
答案 2 :(得分:2)
您是否在绘图前尝试重新排序因子水平? e.g。
foomelt$COG = factor(foomelt$COG,levels(foomelt$COG)[c(2,1,3:8)])
(我现在不能尝试,所以我不能确定它有效)