我正在尝试使用tidyverse软件包创建基于文本的热图。尽管我能够生成热图,但X标签的排列没有按照我的数据提供的顺序进行。
我希望提供我提供的X标签。虽然确实找到了一些解决方案,但以某种方式我无法在代码中应用它们。我也不想硬编码因子函数中的列。代码如下:
df <- read.table('Mydata_sheet_test.txt', sep="\t", header=TRUE)
df %>%
gather(col, Value, -Sample_names) %>%
mutate(row = factor(Sample_names, levels = rev(unique(Sample_names))),
Value = factor(Value)) %>%
ggplot(aes(col, row, fill = Value)) +
geom_tile(colour="black") +
labs(x = "Chromosome names", y = "samples") +
theme(axis.text.x = element_text(angle=21,vjust=0.5)) +
scale_fill_brewer(palette="Paired")
PS:我仍在研究数据处理的基本知识和基础知识,如果有任何简单的解决方案,我很抱歉,我错过了。
主要代码提供:Maurits Evers
我的数据如下: sample_ID,C1.P,C1.Q,C2.P,C2.Q,C3.P,C3.Q,C4.P,C4.Q,C10.P,C10.Q,C20.P,C20.Q < / p>
sam000086,TLM,TLM,TLM,TLM,3 cp,3 cp,3 cp,3 cp,3 cp,3 cp,3 cp,3 cp
sam000046 ,,,,,,,,,,,,
sam000028 、、、、、、、 3 cp,3 cp,3 cp,3 cp,
sam000092,,3 cp,TLM,TLM,TLM,TLM,3 cp,3 cp,3 cp,3 cp,TLM,TLM
sam000080、3 cp,TLM,TLM,3 cp,3 cp,3 cp,3 cp,3 cp,3 cp
........如此
答案 0 :(得分:0)
如果您有ggplot(aes(col, row, fill = Value))
或ggplot(aes(as_factor(col), row, fill = Value))
,请将tidyverse
更改为forcats
。
否则将其更改为ggplot(aes(factor(col, levels = unique(col)), row, fill = Value))
。