【问题标题】:Plot a Matrix with ggplot用 ggplot 绘制一个矩阵
【发布时间】:2016-03-01 15:14:43
【问题描述】:

我想用 ggplot 显示这个矩阵以获得线条: 示例:在 X 中从 1 到 12 的部分,在 Y 中是具有不同颜色的 5 行(类别)及其对应的值。 示例第一个点 x=1 和 Y = 12.25 红色 第二个点 x=2 和 Y=0.9423 为绿色

  DF <- read.table(text = "
                Portion         1         2        3         4         5
    1                 1 12.250000 0.9423077 33.92308 0.0000000 1.8846154
    2                 2  6.236364 1.7818182 38.30909 0.8909091 1.7818182
    3                 3  9.333333 1.8666667 28.00000 0.0000000 2.8000000
    4                 4  9.454545 2.8363636 34.03636 4.7272727 0.9454545
    5                 5 27.818182 0.0000000 19.47273 2.7818182 0.9272727
    6                 6 19.771930 2.5789474 19.77193 0.8596491 6.0175439
    7                 7 22.350877 1.7192982 22.35088 0.8596491 1.7192982
    8                 8 17.769231 4.0384615 15.34615 0.8076923 4.0384615
    9                 9 16.925373 8.8656716 23.37313 2.4179104 2.4179104
    10               10 10.036364 8.3636364 25.09091 0.8363636 1.6727273
    11               11  8.937500 8.9375000  8.12500 0.0000000 0.0000000
    12               12 12.157895 5.2105263 14.76316 0.8684211 0.0000000", header = TRUE)
      newResults <- as.data.frame(DF)

    library(reshape2) 
    R = data.frame(Portion = c('1','2','3','4','5','6','7','8','9','10','11','12'), newResults[,1], newResults[,2], newResults[,3], newResults[,4], newResults[,5])
    meltR = melt(R, id = "Portion")
    ggplot(meltR, aes(reorder(Portion, -value), y = value, group = variable, colour = variable)) +   geom_line().

为什么我的 X 值没有排序?这是最健康的方法吗?

非常感谢。

【问题讨论】:

  • 下面的答案当然是一种“更健康”的方式来做到这一点..但是关于你的具体问题。值得注意的是,c('1','2','3','4','5','6','7','8','9','10','11','12') 的顺序不是您所期望的,因为它不是 numeric 而是 character,因此按字母数字顺序排列。

标签: r ggplot2


【解决方案1】:

试试:

meltR = melt(DF, id = "Portion")
ggplot(meltR, aes(x=Portion, y = value, group = variable, colour = variable)) +   geom_line()

在这种情况下,对于ggplot,在美学上不需要reorder。这将为您提供以下图表:

您可能想要更改变量的名称,方法是在第一步中重命名它们,或者向ggplot 提供自定义标签。

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 2019-11-23
    • 2016-10-20
    • 1970-01-01
    • 2014-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多