当我使用geom_tile()与ggplot2和离散缩放标签在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)
Run Code Online (Sandbox Code Playgroud)
当我绘制数据帧时,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="")
Run Code Online (Sandbox Code Playgroud)
并且对于x和y标记的coords不同:

我想让标签从上到下,从左到右排序.有一个快速的方法来做到这一点?
Pau*_*tra 34
这里重要的是因子水平的顺序.级别中的顺序也是图中的顺序.您可以使用rev这样反转级别的顺序(请注意,我只是重新排序data.frame中的一列):
df$X1 = with(df, factor(X1, levels = rev(levels(X1))))
Run Code Online (Sandbox Code Playgroud)
使用此语法可根据需要重新排序因子.
对于您不希望修改基础数据中因子顺序的情况,您可以使用以下limits参数获得相同的结果scale_y_discrete:
ggplot(a, aes(X1, X2, fill = value)) +
geom_tile() +
scale_y_discrete(name="", limits = rev(levels(a$X2)))
Run Code Online (Sandbox Code Playgroud)
给出这个输出: