2017-03-09 18 views
0

私は、順序付けられた因子でRにデータをプロットしようとしています。具体的には、因子ごとにいくつかのデータ点をプロットしようとしています。読みやすくするために、私はtextで名前をプロットしようとしています。順序付けられた因子によるプロットの理解R

私はそうのようにそれを設定:

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

私はこのようにそれをプロットします:

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

私は、この私にはよさそうだ出力を与える

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

(xvalとtempは入力に応じて変わり、colのseqがそれを色付けするはずです)。しかし、私のプロットは正しく見えません(xwの代わりにです)。 df[['category']]の出力を印刷

は私にこの与える:

3 4 2 1 
  • そして、私はそれを読む方法を知りませんが。これは何を意味するのでしょうか?

  • これは見た目が必要なのか、それとも何が間違っているのかを教えてくれますか? 私のプロットはどうですか?

私は残念ですがここに私のプロットを表示することはできませんが、これは私のものではないデータを使った研究です。どんな助けでも大歓迎です!

+1

すべての 'factor'クラスオブジェクトは、レベルの順序を持​​っています - 単に' factor() 'ではなく' ordered() 'を使う唯一の理由は、モデル行列に異なるコントラストセットを得るためです。 – Gregor

+2

あなたの*本物の*データを表示/共有できないことを理解していますが、小さな*例示的なデータを共有することで問題を再現することができれば非常に役に立ちます。現在のところ、あなたのコードを実行することはできません。あなたは 'df [['category']]'と表示された出力が良いとして、 'text()'と 'df [['カテゴリ ']] '出力の変更 - 意味をなさない。 [あなたの例を再現可能にしてください](http://stackoverflow.com/q/5963269/903061)。 – Gregor

+0

@Gregorあなたの答えに感謝します。私はサンプルデータセットを考え出すつもりです。しかし、私の具体的な疑問(「3 4 2 1が私に語っているものは何ですか?」)は、より一般的で再現性のある例ではうまくいくかもしれないと感じています。あなたはすでにこれについて洞察していますか? – patrick

答えて

2

私の推測では、あなたが実際にしたいということです。

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

あなたの因子変数の(注文)のレベルに関連付けられている標準パレット色を得ることを望んされているように見えます。 @Gregorによって指摘されているように、順序はレベル引数によって設定されるため、ordered()を使用する必要はありません。例えば、c("red","green", "blue", "orange")を使用してpalette()の別の色ベクトルに置き換えると、"xm"レベルのテキストが「オレンジ」として表示されます。

関連する問題