[問題] ggpattern 做圖問題

看板R_Language作者 ( )時間3年前 (2020/08/23 12:18), 3年前編輯推噓3(303)
留言6則, 1人參與, 3年前最新討論串1/1
[問題類型]: 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) [軟體熟悉度]: 入門(寫過其他程式,只是對語法不熟悉) [問題敘述]: 各位前輩好,小弟正在整理實驗的資料進行論文撰寫, 數據的圖表主要以 ggplot2 進行繪製,在柱狀圖中想填充線條(直線/横線等), 因此使用 ggpattern 這個套件,在製做圖表的過程中,突然遇到無法做圖的問題, 特別是在使用 pattern = "magick" 時會出現 error, 刪掉這項或用其他圖形選項,就可以出圖,但又無法自訂填充 pattern, error message 的內容又不知如何修改… 想請教應如何解決這個問題,謝謝 [程式範例]: #使用套件 library(ggplot2) library(ggpattern) # 資料表單 # 表單項目包含 Group2, WPC, mean, SE a <- data.frame(Group2 = c("C", "C", "C", "C", "A1", "A1", "A1", "A1", "A1", "B1", "B1", "B1", "B1", "B1", "D", "D", "D", "D", "D"), WPC = c(-4, 0, 1, 3, -4, 0, 1, 2, 3, -4, 0, 1, 2, 3, -4, 0,1, 2, 3), mean = c(0.46600, 0.84100, 1.41200, 3.11100, -0.51725,0.11100, 0.00075, 1.12425, 2.17350, -0.19225, 0.83825,1.73100, 2.72275, 2.86675, -0.74175, 3.82575, 1.64250, 3.70875, 3.98275), SE = c(0.2234327, 0.1664126, 0.6513623, 0.4452928, 0.7768604, 0.8240675, 0.9581961, 1.2281746, 0.2186948, 0.2168496, 0.9284905, 0.9330518, 0.9475290, 0.2215267, 0.4349041, 1.7227386, 0.4133089, 0.5498973, 0.5349533)) # 作圖 ggplot(a, aes(factor(WPC), mean, gorup = Group2))+ geom_col_pattern(aes(pattern_type=Group2), pattern="magick", pattern_fill="black", pattern_color="black", fill="white", color="black", width = 0.5, position = position_dodge(0.5)) + scale_pattern_type_discrete(choices = c("vertical", "horizontal", "hs_vertical", "hs_horizontal")) # 錯誤訊息 Error in png(png_file, width = width, height = height) : invalid 'width' or 'height' 此外: Warning messages: 1: In png(png_file, width = width, height = height) : 'width=11, height=19' are unlikely values in pixels 2: In png(png_file, width = width, height = height) : 'width=11, height=4' are unlikely values in pixels 3: create_magick_pattern_img(): zero size 4: In FALSE : create_pattern_array(): Expecting a numeric RGBA array with dim = c(0, 11, 4) but instead got a "array" of type double with dimensions c(10L, 11L, 4L) [環境敘述]: R version 4.0.2 (2020-06-22) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 19041) 相關套件版本 ggplot2_3.3.2 ggpattern_0.1.3 [關鍵字]: ggpattern -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.58.191 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1598156294.A.B5D.html ※ 編輯: vetvet (59.127.58.191 臺灣), 08/23/2020 12:47:05 ※ 編輯: vetvet (59.127.58.191 臺灣), 08/23/2020 13:01:17

08/23 15:00, 3年前 , 1F
你X軸打算放的是WPC還是Group2?問題應該是出在你dataframe
08/23 15:00, 1F

08/23 15:05, 3年前 , 2F
你X軸打算放的是WPC還是Group2?問題應該是出在你dataframe
08/23 15:05, 2F

08/23 15:06, 3年前 , 3F
沒有整理成正確的格式。https://i.imgur.com/V0v9DFp.jpg
08/23 15:06, 3F

08/23 15:07, 3年前 , 4F

08/23 15:18, 3年前 , 5F
要把wpc欄位填進去是可行的,可是wpc的類別數必須要跟Group
08/23 15:18, 5F

08/23 15:18, 3年前 , 6F
2的類別數一致。你資料裡wpc有5種可是Group2只有4種
08/23 15:18, 6F
謝謝 l大幫忙審視我的問題, 我是想要以 WPC 做為 x 軸,代表不同時間點的結果, 而實驗組別 A1 ~ D 則在每個時間點採樣測試, 最後完成圖應該會要是像這樣 (上週做的圖,是不同的觀測項目) https://imgur.com/cf4V6cO.jpg
但是在本週開始,由同一張資料表選不同檢測項目,做出來的平均值(mean), 卻沒辦法順利相似的圖形,所以覺得奇怪, 若單純把原本做圖碼中的 pattern = "magick" 刪除, 則又可以產出圖形,圖形中的數值是對的,但是填充內容無法更改, 我想是變成預設的 pattern = "stripe" https://imgur.com/kJ8Y5WG.jpg
如果是因為 WPC 和 Group2 類別數目不一樣的話, 我以為在不同的 pattern 下應該也無法順利產生圖形? 不過我明天會再仔細檢查一下原始的數據是否有問題的,謝謝 l大 幫忙,萬分感謝! ※ 編輯: vetvet (1.168.47.39 臺灣), 08/24/2020 00:16:09
文章代碼(AID): #1VGUu6jT (R_Language)
文章代碼(AID): #1VGUu6jT (R_Language)