我有一个100个值的向量,我想根据等值除以10个小方块的图形绘制强度图。
我正在尝试在R中使用ggplot2软件包,但我被卡住了。下面是我的代码
> vec <- rnorm(100,5,4) #100-vector
> ggplot(NULL) + geom_vline(xintercept = 1:10) + geom_hline(yintercept = 1:10)+
coord_cartesian(xlim = c(.45, 9.55), ylim = c(.45,9.553))+
theme(legend.box.spacing = unit(0, "mm"),
panel.background = element_blank(),
panel.border = element_rect(colour = "black",fill=NA),
axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank()) #the graph with 100 blocks
[enter image description here][1]
我希望根据“ vec”变量的值在此图中绘制颜色,例如从红色到较小的数字,从深蓝色到较大的数字。
答案 0 :(得分:2)
我认为这或多或少是您想要的。使用ggplot
,您需要绘制数据帧,而不仅仅是随机矢量。并且我们需要创建列以映射到x和y轴:
set.seed(47)
vec <- rnorm(100,5,4)
dd = expand.grid(x = 1:10, y = 1:10)
dd$vec = vec
ggplot(dd, aes(x = x, y = y, fill = vec)) +
geom_tile() +
scale_fill_gradient(low = "firebrick4", high = "dodgerblue2")
与其他调色板搭配使用可能会更好,例如scale_fill_distiller(palette = "Spectral")
很好。