【发布时间】:2017-12-18 20:28:48
【问题描述】:
我正在尝试为以下格式的多个文件创建多级饼图:
117.txt
compartment percent sequence
dna 90 AAGTGT
dna 3 AAGTGG
dna 0 AAAAAA
...
rna 75 AAGTGT
rna 10 AAAAAA
rna 10 AAGTGG
...
...
plasma 75 AAGTGT
plasma 10 AAGTGG
plasma 0 AAAAAA
我正在尝试通过 ggplot 创建同心饼图,并根据每个文件(如上面的简化文件)为每个不同的序列使用独特的颜色(我可以将其作为数据框 df 读入)。对于每个隔间,存在 2951 个唯一序列,并标有百分比,如果没有则标为“0”。因此,每个文件有 2951 个序列 *3 个隔间 = 8853 行。
到目前为止,我拥有的代码适用于单个文件,序列的顺序不一定遵循我的自定义调色板的顺序,每个文件的颜色也不一致(即“AAGTGT”序列始终是不同输入文件的颜色相同)。 @Prem 用类似的question 帮助了我一点,但我不知道这里发生了什么。代码如下:
library(ggplot2)
library(randomcoloR)
pal<-c(randomColor(count=2951))
ggplot(df, aes( x=compartment, y=percent, fill=sequence) ) + labs(title="117")
+ geom_bar(stat = "identity") + scale_fill_manual(values=pal)
+ scale_x_discrete(limits=c("dna", "rna", "plasma"), labels=c("plasma"="Plasma\nvRNA", "rna"="RNA","dna"="DNA"))
+ theme_bw() + theme(legend.position="none") + coord_polar(theta="y")
+ theme(axis.line = element_blank(), panel.grid.major.x = element_blank(), panel.grid.major.y = element_blank(),
panel.grid.minor = element_blank(), panel.border = element_blank(), panel.background = element_blank())
+ theme(axis.text=element_blank(), axis.title = element_blank(), axis.ticks = element_blank())
+ theme(plot.title = element_text(colour="black", face="bold", size=24, hjust=0.5))
当我在我的较大数据文件上运行它时,我的三个隔间中的每一个都有我的 2951 个序列,我的调色板颜色不仅不一定遵循序列的顺序,而且它们在图表中并不一致(参见附图数据集#117 和#129,它们的多数序列应该是相同的颜色)。
任何帮助都将不胜感激,因为我认为这种表示对我的数据信息确实有帮助。谢谢大家!
【问题讨论】:
-
数据中的
seq列是否应该是sequence?绘图代码使用sequence作为填充列。 -
你是对的@epi10。我对错误表示歉意。您在下面的回答实际上解决了它并且非常有帮助。我将在今天晚些时候对解决方案发表评论。 (非常感谢!)
标签: r ggplot2 charts pie-chart color-palette