मैं geom_raster
को scale_fill_fermenter
के साथ प्लॉट करने के लिए ggplot का उपयोग करने का प्रयास कर रहा हूं। मैं आर v4.0.2 और ggplot <3.3.2 का उपयोग कर रहा हूँ।
मैं चाहता हूं कि मेरे एनए मान गहरे भूरे या काले रंग के रूप में दिखाई दें, लेकिन scale_fill_fermenter
एनएएस को छोड़ रहा है, जबकि scale_fill_gradient
, जिसे मैं उपयोग नहीं करना पसंद करूंगा, उन्हें बरकरार रखता है।
यानी मैं इसके लिए लुक चाहता हूं (scale_fill_gradient
से):
लेकिन scale_fill_fermenter
का उपयोग करके मुझे यह मिलता है:
मैं इसे कैसे ठीक करूं?
एक मेगावाट:
library(ggplot2)
dat = read.csv(text="a,b,c\n100,1000,NA\n500,1000,NA\n1000,500,0.10817004452149229\n1000,100,0.0930867799644483\n100,100,0.033891940293246624\n500,100,0.0784308558280871\n100,500,0.07515759043562542\n1000,1000,NA\n500,500,0.10275381878402282\n")
dat$a = as.factor(dat$a)
dat$b = as.factor(dat$b)
p = ggplot(dat, aes(x = b, y = a)) +
geom_raster(aes(fill=c)) +
geom_label(aes(label=round(c,digits=1)), fill="white", fontface="bold", label.size=0, label.padding = unit(0.1, "lines")) +
scale_fill_gradient(low="#fee8c8", high="red")
print(p)
ggsave("/z/out1.png", p)
p = ggplot(dat, aes(x = b, y = a)) +
geom_raster(aes(fill=c)) +
geom_label(aes(label=round(c,digits=1)), fill="white", fontface="bold", label.size=0, label.padding = unit(0.1, "lines")) +
scale_fill_fermenter(type="seq", palette="Reds", direction=1, na.value = "black")
print(p)
ggsave("/z/out2.png", p)
0
Richard
12 अगस्त 2020, 21:22
1 उत्तर
सबसे बढ़िया उत्तर
जब मैं इसे R 4.0.2
और ggplot2 3.3.2
के साथ चलाता हूं तो यह NA मान सही ढंग से (काले रंग के रूप में) प्रदर्शित होते हैं।
update.packages()
का उपयोग करके ggplot2
के नवीनतम संस्करण में अपडेट करने से यह ठीक हो जाएगा।
1
nniloc
12 अगस्त 2020, 22:32