內置到我的應用程式中,我能夠更改調色板,包括色覺缺陷。但是,我的一張圖表在 R4 上運行良好,但在 Okabe-Ito 調色板中全是灰色,并在圖例中列出了顏色的名稱。我究竟做錯了什么?
data<-as.data.frame(rbind(15.29,84.71))
data<-cbind(x=c("Total Measurement Variance","Total Measurement Variance"),y=data,Group=c("Repeatability","Reproducibility"))
colnames(data)<-c("x","y","Source")
color=palette.colors(n = 8,palette = "R4")
p<-ggplot(data=data,aes(x=x,y=y,fill=Source,label=y))
geom_bar(stat="identity")
geom_label(aes(group=Source),fill="white",label=paste0(data$y,"%"),position=position_stack(vjust=.5))
scale_y_continuous(labels=function (x) paste0(x,"%"))
scale_fill_manual(values=color[-1])
labs(title="Components of Variation",x="",y="% of Measurement Error Variance")
p
color=palette.colors(n = 8,palette = "Okabe-Ito")
p<-ggplot(data=data,aes(x=x,y=y,fill=Source,label=y))
geom_bar(stat="identity")
geom_label(aes(group=Source),fill="white",label=paste0(data$y,"%"),position=position_stack(vjust=.5))
scale_y_continuous(labels=function (x) paste0(x,"%"))
scale_fill_manual(values=color[-1])
labs(title="Components of Variation",x="",y="% of Measurement Error Variance")
p
uj5u.com熱心網友回復:
問題來自這樣一個事實,即由于某種原因,palette.colors當您使用比較輸出時回傳一個命名向量palette = "Okabe-Ito"here
palette.colors(n = 8,palette = "R4")
# [1] "#000000" "#DF536B" "#61D04F" "#2297E6" "#28E2E5" "#CD0BBC"
# [7] "#F5C710" "#9E9E9E"
palette.colors(n = 8,palette = "Okabe-Ito")
# black orange skyblue bluishgreen
# "#000000" "#E69F00" "#56B4E9" "#009E73"
# yellow blue vermillion reddishpurple
# "#F0E442" "#0072B2" "#D55E00" "#CC79A7"
當您使用 時scale_fill_manual(values=),如果您傳遞一個命名向量,那么它將嘗試將顏色向量中的名稱與您的因子級別的名稱相匹配。由于您的Source值是“Repeatability”和“Reproducibility”而不是“orange”和“skyblue”之類的值,因此匹配不起作用,您只會變灰。如果您洗掉名稱,則不會嘗試進行匹配。
color <- unname(palette.colors(n = 8, palette = "Okabe-Ito"))
應該管用
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/452991.html
