【问题标题】:Understanding plotting with ordered factors in R了解在 R 中使用有序因子进行绘图
【发布时间】:2017-03-09 18:44:02
【问题描述】:

我正在尝试在 R 中使用有序因子绘制一些数据,更具体地说,尝试为每个因子绘制多个数据点。为了更好的可读性,我尝试用text 绘制名称,然后为它们着色以获得更好的可读性。

我是这样设置的:

df[['category']]=ordered(df[['category']], levels=c("nm", "nw", "xw", "xm"))

这给了我这个输出,这对我来说看起来不错:

[1] xw xm nw nm
Levels: nm < nw < xw < xm

我是这样画的:

 text(xval, temp, label= df[['category']], col=seq(1,4))

(其中 xval 和 temp 因输入而异;col 中的 seq 应该为它着色)。但后来我的情节看起来不正确(xw 代替了 nm)。

打印df[['category']] 的输出给了我这个:

 3 4 2 1 
  • 我不知道怎么读;这是什么意思?

  • 这是它需要的样子还是告诉我出了什么问题 我的阴谋?

很抱歉,我不能在这里展示我的图,但这是对不属于我的数据的研究。非常感谢任何帮助!

【问题讨论】:

  • 所有factor 类对象都有其级别的顺序 - 使用ordered() 而不仅仅是factor() 的唯一原因是为了在模型矩阵中获得一组不同的对比。跨度>
  • 我知道您无法显示/分享您的真实数据,但如果您可以通过分享一些小说明性来重现您的问题,这将有很大帮助 数据。目前,我们无法运行您的任何代码,并且您似乎说 df[['category']] 提供的输出看起来不错,然后您运行 text() 并且 df[['category']] 输出更改 - 这没有任何意义。 Please try to make your example reproducible.
  • @Gregor 感谢您的回答。我将尝试提出一个示例数据集。但是,我确实觉得,至少我的一个具体问题(“3 4 2 1 告诉我的输出是什么”)更为笼统,并且可能在没有可重复示例的情况下起作用。您是否已经对此有所了解?
  • 这告诉您“xw”是您的因子分配级别规范中的第三项,4 与“xm”一起使用,2 与“nm”一起使用,1 与“nm”一起使用。因子实际上是整数向量,转换为levels-vector 进行显示..
  • 同意 42-,但令人惊讶的是,因子通常会像上面显示的那样打印它们的水平。好像您在某个时候将其转换为数字...

标签: r plot colors


【解决方案1】:

我猜你确实想要:

 text(xval, temp, label= df[['category']], col=palette()[ df[['category']] ] )

您似乎一直希望获得与因子变量的(有序)级别相关的标准调色板颜色。正如@Gregor 所指出的,您不需要为此使用ordered(),因为排序是由您的levels 参数建立的。您可以为palette() 替换不同的颜色向量,例如使用c("red","green", "blue", "orange") 会导致"xm" 级别的文本显示为“橙色”。

【讨论】:

    猜你喜欢
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2023-04-01
    相关资源
    最近更新 更多