【问题标题】:Plotting in R won't plot type = "l"在 R 中绘图不会绘图 type = "l"
【发布时间】:2012-03-24 03:35:53
【问题描述】:

当我运行这一行时:

plot(z$prod,z$x, type="l")

它将值绘制为破折号并忽略 type 命令。 如果我运行,我可以很容易地得到它来绘制线:

points(z$prod, z$x, type="l")

plot() 忽略 type 命令而 points() 识别它的原因是什么?

  • z$prod 是一个有 4 个级别的因子
  • z$x 是一个数字[1:6]

这快把我逼疯了!

【问题讨论】:

  • 我从来没有见过这种行为,这是什么数据? is.numeric(z$prod) is.factor(z$x)
  • 方法分派。你应该阅读?plot.factor

标签: r


【解决方案1】:

扩展我的评论...

您在查找?plot 时阅读的第二段(您确实 阅读了?plot 对吗?)是这样的:

对于简单的散点图,将使用plot.default。然而,有 是许多 R 对象的plot 方法,包括functionsdata.frames、 density 对象等。使用 methods(plot) 和文档 这些。

然后继续阅读type 参数:

type: 应该绘制什么类型的图 [...] 注意一些方法,例如plot.factor接受这个


输入methods(plot) 会列出一大堆函数。您注意到您的 x 值是一个因素。嗯。那里列出了plot.factor。我想知道它有什么作用。转到?plot.factor 旁边,我们看到:

...对于数字y,使用boxplot...

还有,

barplotboxplotspineplotplot 的其他参数为 合适的。所有这些都接受图形参数(参见par)和 传递给titleaxes = FALSE 的注释参数。无接受 type.

那里。谜团解开了。

【讨论】:

  • 所以,澄清一下,您认为 OP 应该读为 ?plot 吗? :-P
【解决方案2】:

换句话说,您的z$prod 数据不能成为一个因素。将其更改为字符可能会为您提供所需的结果:

as.character(z$prod)

【讨论】:

    【解决方案3】:

    是的

    plot(z$prod,z$x, type="l")
    

    不是

    plot(z$prod,z$x, type="1") 
    

    我的意思是它是字母“l”,而不是数字“1”。

    【讨论】:

    • 在我看来,OP 在他的代码中有一个小写 L,而不是数字 1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多