【问题标题】:UPDATED: Line Plot Becomes Zig-Zag in R更新:线图在 R 中变成锯齿形
【发布时间】:2021-01-25 08:10:43
【问题描述】:

我有一些关于如何在 R 中使用包含 NA 值的数据绘制折线图的问题。 这是数据的摘录:

x y
NA 8
3 NA
NA 9
-3.11 2.37
-2.90 2.45
-3.45 2.02

我尝试执行以下操作:

plot(na.omit(df$x), na.omit(df$y), type="l", 
 main="y vs x",
 xlab="x",
 ylab="y")

我收到这样的错误:

xy.coords(x, y, xlabel, ylabel, log) 错误: “x”和“y”长度不同

(a) 如何使用基本的 R 绘图功能进行绘图? (b) 如何使用 GGplot2 进行绘图?

提前致谢。

-更新-

当我在 R 中绘制折线图时,该图从 x=-3.11 变为 x=-2.90 再到 x=-3.45。 如何安排它以使图形从 x=-3.45 变为 x=-3.11 再到 x=-2.90?

-已解决-

我已经找到了上述问题的解决方案。 只需先对数据框进行排序。 df

【问题讨论】:

  • df1 <- na.omit(df);plot(df1$x, df1$y, type="l", main="y vs x",xlab="x",ylab="y")
  • @RonakShah 非常感谢!你一直都很乐于助人。我真的很感激你的好意。

标签: r


【解决方案1】:
# your data
x <- c(7, NA, 90, 3, 57, NA)
y <- c(9,8,4,NA, 9, 9)

# 1.)
plot(x~y, type="b", data=na.omit(data.frame(x,y)))

# 2.)
plot(x~y, type="b", subset=complete.cases(x,y))

# 3.)
s <- complete.cases(x,y)
plot(y[s], x[s], type="b")

@mochalatte,回答评论中的问题:

~(波浪号)运算符表征 R 中的公式。左侧的变量(在我们的示例中为 x)是因变量。右侧的变量(在我们的示例中为 y)是自变量。通常,因变量 x 由一个或多个自变量探索。如果你像 y~x 一样改变,那么你的因变量和自变量也会发生变化。请参阅:Use of ~ (tilde) in R programming LanguageIn R formulas, why do I have to use the I() function on power terms, like y ~ I(x^3)

subset=complete.cases(x,y)的含义:

  • complete.cases:返回一个逻辑向量,指示哪些案例是完整的,即没有缺失值。
  • 子集:返回满足条件的向量、矩阵或数据框的子集。

在我们的例子中,x,y 没有 NA。 希望这会有所帮助。

【讨论】:

  • 非常感谢您的回复。 x~y 是否表示以 x 为 x 轴数据,y 为 y 轴数据?如果我将它反转为 y~x 会发生什么?还有,subset=complete.cases(x,y)是什么意思?
【解决方案2】:

使用基础图形

plot(na.omit(df)["x"], na.omit(df)["y"])

使用 ggplot

ggplot(na.omit(df),aes(y=y,x=x))

【讨论】:

  • 非常感谢!事实上,我刚刚找到了另一个使用基本图形的解决方案:
    na.omit(cbind(x=df$x, y=df$y)
    非常感谢!
猜你喜欢
  • 1970-01-01
  • 2011-05-16
  • 2011-08-26
  • 2011-11-05
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多