2017-03-09 151 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文本被顯示爲「橙色」。