如何改变热图的网格(边缘)外观和行为?

50次观看(过去30天)
嗨,亲爱的社区,
今天我要处理一个热图图表,使它看起来尽可能漂亮。下面我创建了一些随机数据,其中有一些空值。后来我意识到网格颜色是黑色的,并且不会改变。我也找不到这些属性:GridAlpha, EdgeAlpha, GridColor, GridLineStyle等。当我使用histogram2时,我能够控制这些属性。
所以我想如果它是一个图形和一个图,应该有一个轴句柄。我使用gca获得轴,但它返回我的热图对象句柄本身。
然后我发现了一些有趣的东西,将对象句柄转换为struct。Axes字段实际上是轴句柄。我将XAxisLocation更改为top。
我到达了轴的其他属性,但关于网格外观的属性不工作。最终,我决定让网格可见。但这一次它看起来不太好,很难理解网格边缘。
我的目标是用更少的墨水使可视化更简单,更容易理解。
所以我的问题是如何减少热图上的GridAlpha ?或者我如何将它的颜色改为白色,使它看起来简单?
%创建随机数据
Heatmap_data = randi(20,15,15);
让其中一些是空的
heatmap_data(heatmap_data < 15) = NaN;
%创建x和y标签
Label_names = cellstr([“一个”“O”]“)”;
H_fig = figure;%数字句柄
h_fig。WindowState =“最大化”
H_map = heatmap(h_fig,label_names,label_names,heatmap_data,“MissingDataColor”,[11 11 1],“ColorbarVisible”“关闭”);%热图手柄
H_ax = gca;%试图获得轴句柄,但给我h_map代替(热图句柄)
H_ruler = struct(h_ax);%转换为struct以查看未记录的特性-同时出现警告
h_ruler.Axes。XAxisLocation =“高级”这真的有用!“h_ruler。是一个轴句柄。
%但这部分不工作:
h_ruler.Axes。GridLineStyle =“——”
h_ruler.Axes。GridAlpha = 0.1;
h_ruler.Axes。GridColor = [0.8510 0.3294 0.1020];%红色代码只是举例说明它不工作。
%使网格可见关闭
h_map。GridVisible =“关闭”这次热图看起来很糟糕。理解边并不容易。

接受的答案

实验后奥特曼
实验后奥特曼 2020年3月5日
有几种选择:
  1. 将网格样式更新为非实线,例如:
hHeatmap = struct(h_map).Heatmap;
hHeatmap。GridLineStyle =':'
2.将网格颜色更新为与默认颜色不同的颜色 uint8([38岁;38,38,255])
hHeatmap = struct(h_map).Heatmap;
hGrid = struct(hHeatmap).Grid;
hGrid。ColorData = uint8([238;238;238;125]);
有关uint8 4x1 ColorData格式的说明,请参阅 http://undocumentedmatlab.com/articles/plot-line-transparency-and-color-gradient
2的评论
沭阳县张
沭阳县张 2021年5月31日
编辑:沭阳县张 2021年5月31日
谢谢Yair,非常有用!!!!!

登录评论。

更多答案(0)

类别

了解更多数据分布图帮助中心而且文件交换

s manbetx 845


释放

R2018b

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!