我正在用R和晶格中的函数levelplot()
制作热图。在
我使用的命令是:
data<-read.table("data_corr", header=T)
library(gplots)
library(lattice)
z<-cor(data)
levelplot(z)
我得到了这样的数字
三件事:
(a)行标签被弄脏,如何解决这一问题以获得更清晰的行标签?在
(b)如何使用红色、绿色和蓝色而不是默认颜色(粉色、白色和蓝色)?在
(c)是否可以将刻度从0.90调整到1,而不是0.84?在
python中的解决方案也很受欢迎,在这种情况下,我有一个90*90(row*column)的相关文件,比如filename是z.txt。在
从
levelplot
的帮助页:在col.地区
“区域”为真时使用的颜色向量。这个向量的长度应该比一般的向量长。默认为100)。预计这个矢量在颜色上会逐渐变化(这样附近的颜色就会相似)。当实际选择颜色时,它们将被选择为沿该向量等距分布。当
col.regions
中的区域多于颜色时,颜色将被回收。实际的颜色分配由level.colors
执行,这是单独记录的。在在python的
matplotlib
中,您的问题的答案是:(a)用
imshow
选项interpolation="nearest"
绘图(b)例如,可以在
imshow
选项cmap=cm.jet
中选择颜色贴图。More examples here。在(c)为了缩放,我假设您只想显示阈值中的值,并相应地拥有colorbar映射。使用}。在
imshow
选项vmax
和{下面是一个最小的工作示例:
除了卡尔的回答:
您可以通过如下方式设置
col.regions
的默认值色阶范围:参见
levelplot
的参数at
。行和列名:请参阅
? xyplot
,参数scales
。相关问题 更多 >
编程相关推荐