Re: [問題] ggsave cairo family與儲存路徑的問題

看板R_Language作者 (小煥)時間5年前 (2018/12/28 19:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《hanglong (小煥)》之銘言: : [問題類型]: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : [軟體熟悉度]: : 新手(沒寫過程式,R 是我的第一次) : [問題敘述]: : 各位R版上的先進大家好 近期我在使用程式上 遇到一些比較奇怪的問題 : 原先使用程式上 都沒有任何的異常 但近期因為電腦有些問題 需要重灌 : 我就把自己寫的程式儲存起來 想說重灌後 再重新下載R與R Studio : 灌好R後再重新下載需要的Package 但特別的是 原本可以跑的程式 : 就出現了Error 導致程式無法執行 以下為我的程式碼 : [程式範例]: : library(gplots) : library(ggplot2) : library(SixSigma) : library(lubridate) : library(Cairo) : coat <- read.csv("C:\\Users\\rex\\Desktop\\coating.csv")*[m : #其中 coat$作業日 是日期的形式,例如:2018/12/27 : #coat$average.是浮點數 : #我想用這兩個畫圖,X座標為日期,Y座標為數值 : ggsave(plot = ggplot(data = coat) + geom_point(aes(strptime(作業日, : "%Y/%m/%d"), average.1)), file = "X:\\趨勢圖.pdf", width = 15, height = 7, : device = cairo_pdf, family = "Song") : 但程式出現以下錯誤: : Error in dev(filename = filename, width = dim[1], height = dim[2], ...) : : unable to start device 'cairo_pdf' : In addition: Warning message: : In dev(filename = filename, width = dim[1], height = dim[2], ...) : : cairo error 'out of memory' : 在還無法解決此問題的情形下 我想說先畫圖 之後在解決儲存的問題 : 因此將內容擷取出來: : ggplot(data = coat) + geom_point(aes(strptime(作業日, "%Y/%m/%d"), average.1)) : 此時出現另外的錯誤: : Error: Column `x` is a date/time and must be stored as POSIXct, not POSIXlt : 而以上的兩個問題 在重灌之前是都不會出現 : 程式是可以順利執行的 但是不曉得為什麼會出現這些錯誤 : 原本想說是不是有其他的Package我沒有使用到 但是程式並沒有出現看不懂函數的訊息 : 希望各位先進可以指點迷津 謝謝 : : [環境敘述]: : : R version 3.5.2 (2018-12-20) : Platform: x86_64-w64-mingw32/x64 (64-bit) : Running under: Windows >= 8 x64 (build 9200) : Matrix products: default : locale: : [1] LC_COLLATE=Chinese (Traditional)_Taiwan.950 LC_CTYPE=Chinese : (Traditional)_Taiwan.950 : [3] LC_MONETARY=Chinese (Traditional)_Taiwan.950 LC_NUMERIC=C : [5] LC_TIME=Chinese (Traditional)_Taiwan.950 : attached base packages: : [1] stats graphics grDevices utils datasets methods base : other attached packages: : [1] Cairo_1.5-9 lubridate_1.7.4 SixSigma_0.9-52 ggplot2_3.1.0 : gplots_3.0.1 : loaded via a namespace (and not attached): : [1] Rcpp_1.0.0 magrittr_1.5 MASS_7.3-51.1 munsell_0.5.0 : [5] xtable_1.8-3 colorspace_1.3-2 lattice_0.20-38 R6_2.3.0 : [9] rlang_0.3.0.1 stringr_1.3.1 plyr_1.8.4 : caTools_1.17.1.1 : [13] tools_3.5.2 qcc_2.7 grid_3.5.2 gtable_0.2.0 : [17] KernSmooth_2.23-15 withr_2.1.2 gtools_3.8.1 digest_0.6.18 : [21] lazyeval_0.2.1 tibble_1.4.2 crayon_1.3.4 bitops_1.0-6 : [25] testthat_2.0.1 labeling_0.3 stringi_1.2.4 gdata_2.18.0 : [29] compiler_3.5.2 pillar_1.3.1 scales_1.0.0 : : [關鍵字]: : : strptime ggsave ggplot2 感謝版上的大神幫忙解決了第一個問題 的確用as.POSIXct可以解決此問題 比較奇怪的是重灌之前不需要此程式碼也可以順利執行 至少已經解決了 謝謝 另外的問題 在今天的嘗試 有一點了解問題的地方 程式碼: ggsave(plot = ggplot(data = coat) + geom_point(aes(strptime(作業日, "%Y/%m/%d"), average.1)), file = "X:\\趨勢圖.pdf", width = 15, height = 7, device = cairo_pdf, family = "Song") 我有將路徑改成file = "X:\\Chart.pdf" 就可以順利執行 且圖片中的中文可以正常顯示 (因為要印出中文 當初才用device = cairo_pdf與family = "Song"的指令 所以我認為可能跟程式無法看懂輸出位置的中文 但我另外也有嘗試將device = cairo_pdf, family = "Song"都刪掉 且路徑保持中文 結果也可以執行 但圖片內的中文就無法印出 (當初就是遇到中文無法印出 才用這些指令 所以將其刪除 不意外會有這結果) 現在看起來 好像是指令與輸出路徑(中文)會有衝突 只是這個問題在重灌前也是不會發生的 希望藉由這些資訊 版上的先輩們 可以給些修正的建議 謝謝大家 -- 肝不好 肝若好 人生是黑白的 考卷是空白的 、 ﹐ ● ●b ▎ ●> ● ▌ ﹍﹍ 囧> 幹... ▲ ■┘ ▎ ■ ▋ ︶■ 〈﹀ ∥ ▁▁∥ ▎ ﹀〉▊ 〈\ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.245.73 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1545998390.A.870.html
文章代碼(AID): #1S9X0sXm (R_Language)