[英]ggplot2: change order of display of a factor variable on an axis
當我使用帶有ggplot2
和離散比例的geom_tile()
,標簽在x軸上按升序排列,在y軸上按降序排列:
#some sample data
a <- runif(400)
a <- matrix(a, ncol=20)
colnames(a) <- letters[seq( from = 1, to = 20 )]
rownames(a) <- letters[seq( from = 1, to = 20 )]
a <- melt(a)
當我繪制數據幀時a
這就出現了:
ggplot(a, aes(X1, X2, fill = value)) + geom_tile() +
scale_fill_gradient(low = "white", high = "black", breaks=seq(from=0, to=1, by=.1), name="value") +
opts(axis.text.x=theme_text(angle=-90, hjust=0)) +
scale_x_discrete(name="") + scale_y_discrete(name="")
並且對於x和y標記的coords不同:
我想讓標簽從上到下,從左到右排序。 有一個快速的方法來做到這一點?
這里重要的是因子水平的順序。 級別中的順序也是圖中的順序。 您可以使用rev
來反轉這樣的級別順序(請注意,我只是重新排序data.frame中的一列):
df$X1 = with(df, factor(X1, levels = rev(levels(X1))))
使用此語法可根據需要重新排序因子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.