我试图绘制数据并遇到数字轴问题。它应按顺序绘制:
1, 2, 3, 4, 5... 22, X, Y
相反,它的绘图是这样的:
1, 10, 11, 12... 2, 22, 3, 4..., X, Y
我已尝试使用as.character, as.factor, as.numeric.
更改相关列。我还检查了一些"重新排列"建议,但他们都处理观察本身,而不是轴。
我在俯瞰什么?
以下是数据样本:
Chr Chunk A B C
1 1 3 4 4
1 2 3 4 4
1 3 3 2 4
1 4 3 4 9
2 1 3 3 4
2 2 3 4 4
2 3 3 4 4
10 1 3 4 4
10 2 3 4 4
X 1 3 4 5
X 2 3 4 8
Y 1 3 4 5
我试图使用ggplot制作一系列热图:
heat <- ggplot(data, aes(Chr, Chunk, fill = A, label = sprintf("", A))) + geom_tile() + geom_text() + scale_fill_gradient2(high = "red")
答案 0 :(得分:2)
由于您正在处理字符数据,因此ggplot将简单地对您的数据进行排序以进行绘图(字符串按字典顺序排序,以便'10'
出现在'2'
之前。如果要影响订单,请将角色转换为有序因子。不幸的是,这需要手动提供订单(但在您的情况下订单并不难写下来):
data$Chr = factor(data$Chr, levels = c(1 : 22, 'X', 'Y'), ordered = TRUE)