作者helixc (@_2;)
看板R_Language
標題[討論] ggplot2不能疊圖或畫雙Y軸圖?
時間Sun Jul 5 14:58:14 2015
其實想做的事情很簡單,就是想要在一張barplot放兩種資料,
而這兩個資料需要對應到不同的Y座標。
查了一下ggplot2好像沒有這種雙軸的功能?
要畫這種雙軸圖有些時候會把透過把兩張圖疊在同一張圖上來實現的樣子?
Google了一下在Cookbook for R的作者寫了一個multiplot的()的function如下:
http://www.cookbook-r.com/Graphs/Multiple_graphs_on_one_page_%28ggplot2%29/ 另外在這個網頁上找到有人寫了eastyGplot2這個package也可以合併圖
http://goo.gl/mG8Jla 還有人寫了一個ggplot_dual_axis()的function來用
http://goo.gl/eNLUS3 再繼續Google發現好像R最基礎的繪圖套件就可以完成雙座標軸的圖
如
http://www.r-bloggers.com/multiple-y-axis-in-a-r-plot/ ggplot2的用法是不困難,但他沒給的功能好像也要自己寫(廢話)
有聽說ggplot2是基於lattice套件去寫的,是不是也要去瞭解lattice?
還是先把基礎的plot()弄懂就好?
另外有一個類似的問題,像用dplyr/tidyr 套件去整理資料很容易,
但在沒有這些套件的時候要怎麼用基礎的function來完成資料處裡呢?
有嘗試查詢過可是查不太到,手邊R教科書y這部分談得不太多...
研究所時代有去T大海洋所旁聽過R的課程,
那位謝老師要我們不用套件寫出自己要的功能,
那時被震撼教育過沒幾次就陣亡了,
但總覺得如果能夠不倚賴好用的套件自己土砲完成好像也不錯XDD
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.151.129
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1436079496.A.710.html
→ celestialgod: lattice跟ggplot2差很多喔,lattice系統又自樹一格 07/05 16:10
→ celestialgod: lattice設定很廣,沒有一定經驗會找選項找到瘋掉 07/05 16:11
→ celestialgod: ggplot2底層雖然用lattice,可是設定都不一樣了 07/05 16:11
→ celestialgod: 要把它們當作兩個不同的東西... 07/05 16:11
→ celestialgod: 個人很愛lattice,網路有lattice跟ggplot2對照版 07/05 16:12
→ celestialgod: 根據Lattice - Multivariate Data Visualization 07/05 16:13
→ celestialgod: With R 一書的圖做的對照程式 07/05 16:14
→ celestialgod: 如果會其中一種 滿適合用來學lattice/ggplot2 07/05 16:14
→ celestialgod: 至於基礎函數其實很多都很方便,這部分需要實例 07/05 16:15
→ celestialgod: 不然在套件出來前 前人怎麼做? 07/05 16:19
→ helixc: 樓上大大可以回文呀...這樣看好累XD 07/05 17:01
→ helixc: dplyr的group_by, %>%, summarise()都超誇張的好用 07/05 17:01
→ helixc: 我仔細翻了我幾年前印的A Handbook of Statistical Anal 07/05 17:02
→ helixc: ysis with R這本書有談到資料整理 只有三頁XD 07/05 17:02
→ obarisk: ggplot2和lattice都用grid 07/05 17:05
→ celestialgod: group_by就是tapply summarise應該sapply都做得出來 07/05 17:48
→ celestialgod: %>%其實是magrittr提出來的 他以前好像是用%.% 07/05 17:51
→ celestialgod: magrittr還有%T>%, %<>%, %$%等 07/05 17:52
推 leo0650: 針對雙Y軸圖在ggplot2套件上的應用,這裡的回答提供解釋 07/06 01:07
→ leo0650: 由於雙軸圖可能帶來的缺點,此套件的邏輯會傾向採用facet 07/06 01:09
→ leo0650: 的方式對齊,來比較數據 07/06 01:10
→ helixc: 暫時避免掉雙軸圖了,有機會再慢慢玩,感謝 07/06 01:15
→ celestialgod: 前面講那麼多,忘記說latticeExtra有一個叫做double 07/06 01:20
→ celestialgod: Yaxus可以用... 07/06 01:20
→ celestialgod: 更正是doubleYaxis 07/06 01:21