かなり単純なggplot2グラフであると思うものを作成するのに問題があります。
データフレームにいくつかの実験データがあります。各データエントリは、測定されていたシステムと、それが実行されたインスタンス(問題)によって識別されます。各エントリには、特定のシステムとインスタンスについて測定された値もあります。
例えば:
mydata <- data.frame(System=c("a","b","a","b","a","b"), Instance=factor(c(1,1,2,2,3,3)), Value=c(10,5,4,2,7,8))
ここで、このデータを箱ひげ図にプロットします。ここで、x軸にはインスタンス識別子が含まれ、バーの色は値がどのシステムに対応しているかを示します。バーの高さは、データフレームの値で重み付けする必要があります。
これはほとんど私が望むことをします:
qplot(data=mydata, weight=Value, Instance, fill=System, position="dodge")
最後に、バーを並べ替えて、システムAの値で並べ替えます。ただし、これを行うためのエレガントな方法を理解することはできません。
私の最初の本能はを使用することでしたqplot(data=mydata, weight=Value, reorder(Instance, Value), fill=System, position="dodge")
が、これはmean
各インスタンスの値で並べ替えます。Aの値を使用したいだけです。qplot(data=mydata, weight=Value, reorder(Instance, Value, function(x) { x[1] } ), fill=System, position="dodge")
「最初の値」でインスタンスを並べ替えるのに使用できますが、これは危険です(もしも順序が変わりますか?)そして読者には不明確です。
よりエレガントなソリューションは何ですか?