我在生產我認爲應該是一個相當直接的ggplot2圖時遇到了一些麻煩。通過多維數據重新排序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")
下令以「第一個值」的情況下,但這是危險的(如果訂單改變了呢?)並且不清楚給讀者。
什麼是更優雅的解決方案?
謝謝,第一個答案似乎工作,至少不會中斷。不過,我認爲它可能會有所改善。第二個例子不起作用! –
@EdMcMan我在第二個答案中糾正了這個問題。 – nograpes