我試圖繪製使用以下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