【问题标题】:sorting dotplot factor axis in ggplot在ggplot中对点图因子轴进行排序
【发布时间】:2011-11-17 02:33:02
【问题描述】:

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

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

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

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 列按字母顺序排序,所以我认为这可能会改变顺序但它没有)

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

谢谢

【问题讨论】:

  • 目前名称按顺序排序......从下往上。如果您希望它们自上而下,则需要将 rev 函数应用于名称。 (这不是散点图。)
  • @DWin: 固定绘图类型:散点图 -> 点图
  • @DWin: 我会使用 rev 函数吗:a &lt;- ggplot(data, aes(x = expression, y = rev(Gene.Name))) 如果是这样,它没有改变任何东西。

标签: r sorting plot scatter


【解决方案1】:

将名称更改为“dat”,因为“data”是一只坏狗。使用 rev 反转因子变量的水平顺序。您的代码在第一行缺少右括号,在第二行中拼写错误 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)

【讨论】:

  • 非常感谢 DWin。有效!所以,我现在的理解是 ggplot 开始布置第一个数据点(在我的例子中以 A 开头的基因)接近 0,0。这是一个真正的概括吗?
  • 您的原始代码可能是正确的,但需要注意。这可能取决于您所说的 [0,0] 的含义。在我的代码中,我会说 Gene.Names 的定位具有最接近 [(min(expression), max(re-ordered-Gene-Names)] 的“A”,因为我想到 [0,0]位于左下角。除非您设置轴限制,否则 ggplot 通常可能不会包含 [0,0]。
  • 是的,我的意思是 [0,0] 作为绘图区域的左下角。如果我翻转原始数据集上的坐标,以 A 开头的基因最接近 [0,0]。我仍在尝试学习 ggplot2,所以最好记住这一点。再次感谢!
  • 大多数绘图范例(base、lattice 和 ggplot)默认使用因子顺序,这在数据中而不是在绘图例程中最容易更改。
  • 答案只改变了轴标签的顺序,但不改变数据。生成另一个因子或 ggplot2 选项。 stackoverflow.com/questions/8713462/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-22
  • 2013-12-01
  • 2013-02-12
  • 1970-01-01
相关资源
最近更新 更多