2013-04-03 35 views
0

我有以下形式的數據幀:如何色點中的R具有相同的規模

Data <- data.frame(X = sample(1:10), Y = sample(1:10)) 

我想顏色使用的值從

plot(Data$X,Data$Y) 

與所獲得的點另一個數據幀:

 X1 X2 X3 X4 X5 
1 0.57 0.40 0.64 0.07 0.57 
2 0.40 0.45 0.49 0.21 0.39 
3 0.72 0.65 0.74 0.61 0.71 
4 0.73 0.54 0.76 0.39 0.64 
5 0.88 0.81 0.89 0.75 0.64 
6 0.70 0.65 0.78 0.51 0.66 
7 0.84 0.91 0.89 0.86 0.83 
8 -0.07 0.39 -0.02 0.12 -0.01 
9 0.82 0.83 0.84 0.81 0.79 
10 0.82 0.55 0.84 0.51 0.59 

因此,有五個不同的圖使用從第二個數據幀到彩色t他點。我設法通過在這裏尋找(Colour points in a plot differently depending on a vector of values)來做到這一點,但我無法弄清楚如何爲所有五個不同的地塊設置相同的色階。

第二個數據框中的列可能有不同的最小值和最大值,所以如果我在第一列使用cut函數生成顏色,這將生成相對於此列的因子和後面的顏色。

希望這是明確的,

謝謝。

+1

將數據框摺疊爲單個矢量,在_that_上使用'cut'來構建色階。 – joran

回答

0

您需要使用顏色漸變來包含所有值,以便您可能希望將它們放入同一個向量中。我可能會融化數據,然後進行顏色漸變,然後使用ggplot中的facet函數獲取多個圖。或者,如果您不想使用ggplot,則可以將數據轉換回多列,併爲您的顏色增加5個額外的列。

require(reshape2) 
require(ggplot2) 
Data.m <- melt(Data,id=Y) 
rbPal <- colorRampPalette(c('red','blue')) 
Data.m$Col <- rbPal(10)[as.numeric(cut(Data.m$value,breaks = 10))] 
ggplot(Data.m, aes(value, Y,col=Col)) + 
    geom_point() + 
    facet_grid(variable~.) 

您的數據對象有兩個變量X和Y,但你談談製作5個圖形,所以這部分很有點不清楚,但我認爲熔體功能將有助於得到一個全面的顏色漸變和facet_grid函數可以讓一次做5張圖更容易,如果這是你想要的。

相關問題