我正在尝试使用散点图来可视化三个变量:时间,半径和强度。我希望散点图上的每个点都按照渐变进行着色,其中红色表示强度小于1,白色表示强度1,绿色表示强度大于1。
#A1 scatter plot
colors <- c("firebrick2", "white", "darkolivegreen3")
class <- classIntervals(A1.matrix[,3], 10) #A1.matrix[,3] is "Intensity"
colorcode <- findColours(class, colors)
plot(A1.matrix[,1], A1.matrix[,2]) #A1.matrix[,1] is "Time" and A1.matrix[,2] is "Radius"
points(A1.matrix[,1], A1.matrix[,2], pch = 19, col = colorcode)
这与我要寻找的非常接近。 Firebrick2和darkolivegreen3分别对应于A1.matrix [,3]中的最小值和最大值。但是白色不等于1。如何设置白色等于1?
理想情况下,该图形还将具有一个色条刻度,以显示最小值和最大值。
使用at = unique,成功完成了与水平图热图类似的操作,如下所示。但是,我只是从网上某个地方复制了它,它似乎无法在点数功能中使用,我不确定它是如何工作的或者是否可以应用。带有水平图的颜色条比例会自动成为图形的一部分。
#A1 heat map
levelplot(nbin.A1, cuts = 50, at= unique(c(seq(A1min,1, length = 100), seq(1,A1max, length=100))), col.regions = colorRampPalette(c("firebrick2", "white", "darkolivegreen3"))(1e3), xlab = "Radius (Microns)", ylab = "Time")
感谢您的阅读!