[問題] ggplot畫不出同類型的data

作者: YangPeiHung (楊培宏)   2020-07-26 08:46:14
請把以下不需要的部份刪除
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
使用者(已經有用R 做過不少作品)
[問題敘述]:
請簡略描述你所要做的事情,或是這個程式的目的
其實我已經有可以跑出countour plot的ggplot code,
但不知道為什麼相同種類與範圍的資料,有的圖畫得出有的圖畫不出來,
有的圖畫得出來但是顏色卻超淡
加上ggplot2沒有report任何的error/warning,
因此不確定這個問題會出在哪邊,
只好先附上code,以及用google雲端附上資料作為測試,謝謝!
https://drive.google.com/drive/folders/1WszQ3e2geE5R9GuCM6fD9fllkuN2u-XY
測試資料夾中,df_1_success是能成功畫出圖的第一種資料
failed_1-3則是畫不出來的三個資料範例
df_2_success是成功畫出圖的第二種資料(z的範圍不同)
failed_1則是畫不出來的範例
(實際上畫得出來的圖也不是每次都一致,會在contour的顏色分界每次都有微小的不同
有時候不會有明顯的分界線有時候卻有,但兩張圖也是99%像,如:
https://i.imgur.com/AbIvxR9.png
https://i.imgur.com/tlQBIaX.png

先感謝大家幫忙!
[程式範例]:
library(ggplot2)
library(wesanderson)
ggplot(df, aes(x=x, y=y,
z=z)) +
stat_contour(geom="polygon",
breaks=seq(min(z), max(z), length.out = 4001),
size=1.5,
aes(fill=..level..)) +
scale_fill_gradientn(colours =
wes_palette("Zissou1", 200, type = "continuous")) +
xlim(min(x), max(x)) +
ylim(min(y), max(y))
[環境敘述]: R 4.0.2 / x86_64-apple-darwin17.0 (64-bit)
[關鍵字]: ggplot2
作者: andrew43 (討厭有好心推文後刪文者)   2020-07-26 23:04:00
try geom = "contour"
作者: YangPeiHung (楊培宏)   2020-07-27 00:04:00
抱歉沒辦法,這讓顏色完全消失漸層只剩單色Qq
作者: cywhale (cywhale)   2020-07-29 09:34:00
請問是否有產生x,y,z方式的code? expand.grid?
作者: YangPeiHung (楊培宏)   2020-07-30 19:29:00
x,y是expand.grid,z是model fitted value,但是因為涉及資料問題我用類似的手法改成了這個狀況但至少目前確定是stat_contour的問題
作者: andrew43 (討厭有好心推文後刪文者)   2020-07-30 22:18:00
我沒發現異常之處。是否要針對特定資料和code討論?
作者: YangPeiHung (楊培宏)   2020-08-01 00:25:00
我把stat_contour改成geom_raster(interpolate=T)並且在ggplot aes補上fill後就成功了,雖然變成用heatmap的方式而非contour,但畫出來的圖是一樣的,甚至缺口的部分都有補齊,雖然是解決了但仍未找到stat_contour出問題的原因

Links booklink

Contact Us: admin [ a t ] ucptt.com