了解R

时间:2017-03-09 18:44:02

标签: r plot colors

我正在尝试用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 
  • 我不知道如何阅读;这是什么意思?

  • 这是它需要看的方式还是告诉我什么是错的 我的情节?

对不起,我无法在这里展示我的情节,但这是研究数据不是我的。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

我的猜测是你真的想要:

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

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