【问题标题】:How to plot multiple curves, same data frame, one curve for each unique value in column 1? [duplicate]如何为第 1 列中的每个唯一值绘制多条曲线、相同的数据框、一条曲线? [复制]
【发布时间】:2014-12-31 21:18:51
【问题描述】:

所以我有一个看起来像这样的数据框

Col1   Col2   Col3
------------------
foo    x11    y11
foo    x12    y12
foo    x13    y13
bar    x21    y21
bar    x22    y22
bar    x23    y23
baz    x31    y31
baz    x32    y32
baz    x33    y33

我想为第 1 列中的每个唯一值绘制一条曲线,并将它们叠加在同一个图上,其中每条曲线上的点由第 2 列中的(数字)(x,y)坐标指定, 3. 事先不知道值是什么,也没有数字标签。我该怎么做?

(信不信由你,我在互联网上的任何地方都找不到这个问题的答案)

谢谢!

【问题讨论】:

  • “他们没有数字标签”是什么意思?您应该发布一个示例数据集。
  • @BondedDust 这意味着标签是“foo”和“bar”之类的东西,而不是 1、2、3 或 Category1、Category2、Category3。这使得它不太适合 for 循环等。

标签: r


【解决方案1】:

这里有两种可能,一种是ggplot2,一种是base:

set.seed(1234)
df <- data.frame(fac = gl(3, 3), x = rep(1:3, 3), y = rnorm(9))

# ggplot
require(ggplot2)
ggplot(df, aes(x = x, y = y, col = fac)) +
  geom_line()

# base
dfwide <- reshape(df, timevar = 'fac', idvar = 'x', direction = 'wide')
matplot(dfwide[,-1], type = 'l')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 2019-08-31
    • 2021-07-29
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多