在ggplot中排序dotplot factor轴

时间:2011-09-14 14:39:41

标签: r sorting plot scatter

我有一个带有基因表达数据的data.frame,我想在ggplot2中创建一个图表。这是我的数据框的一个例子:

Gene.Name    cell.type    expression
ABC          heart        12
AZF          heart        13  
ABC          kidney       1
AZF          kidney       2

。实际上有160个基因,5种组织类型 我用以下代码绘制了一个dotplot:

a <- ggplot(data, aes(x = expression, y = Gene.Name))
a + geom_point() + facet_grid(. ~ cell.type)

这是情节的快照

http://i55.tinypic.com/2rgonjp.jpg

我想要做但似乎无法管理的是按字母顺序排列基因。我试过了:

a <- ggplot(data, aes(x = expression, reorder(Gene.Name, Gene.Name)))

但是这不起作用(Gene.Name列按字母顺序排序,所以我认为这可能会改变顺序,但事实并非如此)

关于如何更改基因名称顺序的任何建议?

由于

1 个答案:

答案 0 :(得分:1)

将名称更改为“dat”,因为“数据”是一只坏狗。使用rev可以反转因子变量的级别顺序。你的代码在第一行中缺少一个结束的paren,在第二行中缺少拼写错误的geom_point():

dat$Gene.Name <- factor(dat$Gene.Name, levels= levels(rev(dat$Gene.Name))
a <- ggplot(dat, aes(x = expression, y = Gene.Name))
a + geom_point() + facet_grid(. ~ cell.type)