我正在尝试用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
我不知道如何阅读;这是什么意思?
这是它需要看的方式还是告诉我什么是错的 我的情节?
对不起,我无法在这里展示我的情节,但这是研究数据不是我的。非常感谢任何帮助!
答案 0 :(得分:2)
我的猜测是你真的想要:
text(xval, temp, label= df[['category']], col=palette()[ df[['category']] ] )
您似乎一直希望获得与因子变量的(有序)级别相关联的标准调色板颜色。正如@Gregor所指出的那样,您不需要使用ordered()
,因为排序是由您的levels参数建立的。您可以为palette()
替换不同的颜色向量,例如使用c("red","green", "blue", "orange")
会导致"xm"
级文本显示为“橙色”。