簡體   English   中英

R:着色圖

[英]R: Coloring plots

我有一些要繪制的數據(例如plot(x,y) ),但我有一些根據矢量z的值進行着色的標准,看起來像c(1, 0, 1, 1, 1, 1, 0, NA ,0 ,0, .....)等。

有什么方法可以選擇1的顏色和0的顏色?

謝謝

我知道已經回答了,但是這里有一些非常直觀的代碼,並提供了參考。

#Let's create some fictional data 
x = rbinom(100,1,.5)
x[round(runif(10)*100)] = NA

#Assign colors to 1's and 0's
colors = rep(NA,length(x))
colors[x==1] = "blue"
colors[x==0] = "red" 

#Plot the vector x
plot(x,bg=colors,pch=21)

在此處輸入圖片說明

您希望獲得與xy向量一樣長的顏色向量,例如,如下所示:

z[is.na(z)] = 2
zcol = c("red", "blue", "black")[z + 1]

然后,您可以簡單地執行以下操作:

plot(x, y, col=zcol)

也許我缺少了一些東西,但是我想你想要:

plot(x,y,col=ifelse(z==0,'zerocolour','onecolour'))

在這里用redblue或其他顏色替換兩種顏色。

我認為不會繪制NA ,因此您不必擔心這些。

要獲得更多顏色,可以使用z的唯一值創建一個小的映射data.frame ,然后將zdata.frame合並。 這是兩種顏色的示例:

map<-data.frame(z=c(0,1),col=c('red','blue'))
plot(x,y,col=merge(z,map)$col)

使用ggplot2軟件包

require(ggplot2)

df <- data.frame(x = c(1, 2, 3, 4, 5), y = c(2, 3, 4, 6, 7), z = c(1, 0 , 1, 0 , NA))
df$z[is.na(df$z)] = 2
ggplot(df, aes(x, y, color = as.factor(z))) + geom_point()

您可以將顏色向量提供給參數col= ,然后使用z選擇顏色。 使用paste()將NA轉換為字符,然后使用as.factor()將這些字符解釋為1、2和3。

x<-c(1,2,3,4,5)
y<-c(1,2,3,4,5)
z<-c(1,0,NA,1,1)
plot(x,y,col=c("red","green",'black')[as.factor(paste(z))],pch=19,cex=3)

str(as.factor(paste(z)))
Factor w/ 3 levels "0","1","NA": 2 1 3 2 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM