我的基質由0至100之間的值的和具有100×100 尺寸我基本上要繪製這個矩陣但顏色在例如高於50的所有值例如紅色和以下藍色。最重要的是我希望像他們與ggplot做此處添加一個漂亮的grayisch格:R矩陣積
我想知道什麼是實現這一最簡單的方法是什麼?我不確定是否想給ggplot一個嘗試,因爲從目前爲止看來,它看起來相當複雜。這樣的任務是否還有其他簡單的繪圖功能?
我的基質由0至100之間的值的和具有100×100 尺寸我基本上要繪製這個矩陣但顏色在例如高於50的所有值例如紅色和以下藍色。最重要的是我希望像他們與ggplot做此處添加一個漂亮的grayisch格:R矩陣積
我想知道什麼是實現這一最簡單的方法是什麼?我不確定是否想給ggplot一個嘗試,因爲從目前爲止看來,它看起來相當複雜。這樣的任務是否還有其他簡單的繪圖功能?
我不是100%確定您的數據是否在矩陣中,並且您想要熱圖類型圖。或者,如果它以某種其他形式存在,並且需要像鏈接到的那樣的散點圖。我只是假設你的數據如上所述,並且你想要一個熱圖。我想這是一樣的東西:
x=abs(rnorm(100*100,50,25))
x=matrix(x,nrow=100)
所以我會重塑數據,因此它看起來像的XY座標:
require(reshape2)
require(ggplot2)
x1=melt(x)
names(x1)=c("x","y","color")
那我就做我的中止進入一個因素:
x1$color=factor(x1$color>50)
levels(x1$color)=c("lessthan50","more than 50")
然後與ggplot聯繫:
qplot(x, y, fill=color, data=x1,geom='tile')
在基礎圖形,這只是:
image(x, col=c("red","blue")[1+(x>50)])
要添加網格使用:
grid(nx=100, ny=100, lty=1)
也是很好的做法!謝謝。不過,我更喜歡ggplot2軟件包的風格:-)這真是太神奇了,不是嗎? :) – user969113
你可以用levelplot做到足夠簡單,
x <- abs(runif(100*100,0, 100))
x <- matrix(x,nrow=100)
levelplot(x, cuts=1, col.regions=c("red", "blue"))
哇噢優秀。那現在看起來我想要什麼!我剛開始研究ggplot2,就像我在過去半個小時裏看到的那樣,你可以製作出非常酷且看起來很棒的情節! :)謝謝你,偉大的工作! – user969113