Re: [問題] ggplot2 有關scale_fill_或Legends

作者: celestialgod (天)   2017-06-07 20:26:47
※ 引述《BUQ (固執又暴燥)》之銘言:
: [問題類型]:
:
: 程式諮詢(我想用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
都已經用ggplot2,就不要再花費太多心力再手動設定的部分,盡量讓它幫你完成
就像推文說的轉成long table即可:
畫出來的圖:http://imgur.com/a/DLG1I
library(data.table)
library(plyr)
library(pipeR)
library(ggplot2)
DT <- data.table(mean = rnorm(1000), wweather = rnorm(1000, 2),
prmean = rnorm(1000, 2.5)) %>>%
melt(measure.vars = 1:3) %>>%
`[`(j = fill := mapvalues(variable, c("mean","wweather", "prmean"),
c("平均", "觀測", "75百分位")))
ggplot(DT, aes(value, fill = fill)) +
geom_density(alpha = 0.3) +
labs(x = "溫度", title = "2012 高雄市", fill = "溫度") +
theme(plot.title = element_text(hjust = 0.5))
作者: BUQ (固執又暴燥)   2017-06-07 20:35:00
多謝哥 我會好好研究請問一下大大 `[`(j = fill := 這是什麼意思
作者: clansoda (小笨)   2017-06-07 22:09:00
可以找一下datatable的介紹, 多個assign的function不對 我看錯了

Links booklink

Contact Us: admin [ a t ] ucptt.com