[問題] ggplot2 有關scale_fill_或Legends

作者: BUQ (固執又暴燥)   2017-06-07 15:37:04
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
請簡略描述你所要做的事情,或是這個程式的目的
[程式範例]:
我想改 圖的Legends的文字內容 用google找到這教學
http://www.cookbook-r.com/Graphs/Legends_(ggplot2)/
其中的一段 http://ideone.com/g0dEeN
http://i.imgur.com/tWPaACT.jpg 我想改標示上的文字也就是legend.text
http://i.imgur.com/jyAuJmW.jpg
Q1 為何範例 有時用scale_fill_manual 有時用scale_fill_discrete差別在哪?
Q2 我的程式碼 http://ideone.com/JB8Vjw 我需要畫的是 geom_density
有很多行被註解是因為在網路上找了很多解法 試都沒有用
沒註解的 就是我現階段妥協的畫法
http://i.imgur.com/J3NWTRi.jpg
[環境敘述]:
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)
[關鍵字]:
Legends ggplot2
作者: locka (locka)   2017-06-07 16:03:00
1. 兩者差別在於discrete是自動為離散變數分配顏色,manual是手動指定顏色2. 因為你的寫法是各自畫三個geom_density,所以scale_fill_那些沒辦法用,正確做法應該是把那三個欄位的資料合成同一個欄位(整理成long table的形式),如此只需要寫一個geom_density就可搞定。
作者: andrew43 (討厭有好心推文後刪文者)   2017-06-07 16:34:00
同locka,ggplot會建議只寫一次 +geom_density()因為做了三次geom_density使之後aes不再適用
作者: BUQ (固執又暴燥)   2017-06-07 20:36:00
謝謝 各位大大 自學果然會走到奇怪的區域我還一直以為 當初這樣寫很棒....XD蠢蠢的
作者: celestialgod (天)   2017-06-07 20:37:00
跟自學無關,是你還不清楚ggplot2的邏輯慢慢清楚ggplot2邏輯,就不會有這個疑問了傳統的畫圖 邏輯跟ggplot2邏輯是不相容的 要轉換一
作者: BUQ (固執又暴燥)   2017-06-07 22:06:00
ggplot2的邏輯 有沒有敘述比較好的網站可以參考
作者: celestialgod (天)   2017-06-07 22:09:00
沒有XDD 多畫幾次 多看幾次就熟了
作者: yenzichun (yenzichun)   2017-06-07 23:08:00
其實我覺得ggplot2的設計哲學就是headley大神所謂的tidy data,原po可以參考看看,之前在網路上有看過
作者: celestialgod (天)   2017-06-07 23:37:00
可以找找看ggplot2 book XD
作者: andrew43 (討厭有好心推文後刪文者)   2017-06-08 00:49:00
傳統畫法就是一個指令一個動作,但ggplot是把資料和動作在不同步驟一次處理…我也是多用就會了。

Links booklink

Contact Us: admin [ a t ] ucptt.com