2016-07-27 4 views
5

凡例項目が表示される順序を変更しようとしています。私はこれで約1時間を過ごしました。結果はありませんでした。凡例の項目を並べ替えるにはどうすればいいですか?

は、ここでは例のセットアップです:

library(ggplot2) 
set.seed(0) 
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10')) 

そして、ここでは、私が試した多くのものの一つだ:

ggplot(d, aes(x = x, y = y)) + 
    geom_point(size=7, aes(color = a, order = as.numeric(a))) 

enter image description here

(私の素朴な希望は、もちろん、ということでした凡例項目は1、3、10の順番で表示されます)

答えて

8

ggplot通常は、に従って因子値を並べ替えます因子の。 Rの多くの機能を使って戦うことになるが、色の目盛りを操作することで手動で変更できます。

ggplot(d, aes(x = x, y = y)) + 
    geom_point(size=7, aes(color = a)) + 
    scale_color_discrete(breaks=c("1","3","10")) 
2

Th凡例ラベルのE順序は要因に列aの値を並べ替えると変更することで操作することができます:d$a <- factor(d$a, levels = d$a)

だからあなたのコードは、この

library(ggplot2) 
set.seed(0) 
d <- data.frame(x = runif(3), y = runif(3), a = c('1', '3', '10')) 

d$a <- factor(d$a, levels = d$a) 

ggplot(d, aes(x = x, y = y)) + 
    geom_point(size=7, aes(color = a)) 

そしてouptut enter image description here

ノートのようになり、 1は赤、3は緑、10は青です。

+1

ありがとう!私は有益な情報を提供しているので、この答えをアップビートしましたが、根底にある 'data.frame'を変更する必要はありません。どういうわけか、 'ggplot2'は、何かを凡例の項目の順序付けと同じように変えるために、基礎となる' data.frame'を変更する必要があるとは思えません。 – kjo

関連する問題