2017-03-09 147 views
0

我试图绘制与R中有序的因素,一些数据排序因素绘制,更具体试图每因素绘制几个数据点。为了获得更好的可读性,我试图用text绘制名称,然后为它们着色以获得更好的可读性。理解与R中

我把它就像这样:

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需要的纳米的地方)。

印刷df[['category']]输出给了我这样的:

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

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

对不起,我不能在这里显示我的情节,但这是研究数据,不是我的。任何帮助深表感谢!

+1

所有'factor'类的对象有他们的水平下订单 - 唯一的理由使用'排序()',而不仅仅是'因子()'是获得一组不同的对比模型中的矩阵。 – Gregor

+2

我知道你不能显示/分享你的*真实*数据,但是如果你可以通过共享一些小的*说明*数据来使你的问题重现,这将会有很大的帮助。目前,我们不能运行任何代码的,你好像说,'DF [“类”]]'给输出,看起来不错,然后运行'文本()'和'的DF [”类别']]输出变化 - 这是没有意义的。 [请尝试使您的示例重现](http://stackoverflow.com/q/5963269/903061)。 – Gregor

+0

@格雷戈感谢您的回答。我会试着想出一个示例数据集。不过,我确实感到至少有一个我的具体问题(“3 4 2 1”告诉我的输出是什么)是比较普遍的,并且可能会有一个可重复的例子。你对此有何看法? – patrick

回答

2

我的猜测是,你真正想要的:

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

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