- 将网格样式更新为非实线,例如:
如何改变热图的网格(边缘)外观和行为?
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 =“关闭”;这次热图看起来很糟糕。理解边并不容易。
0评论
接受的答案
实验后奥特曼
2020年3月5日
有几种选择:
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