我在Matlab 2016a中使用Bioinformatics Toolbox。我使用mat = DataMatrix()
创建了一个包含行标签和列标签的矩阵,然后使用fig = HeatMap(mat)
创建了一个热图。行和列标签会自动添加到结果图中。
我想将结果图中的所有字体更改为Arial。我还想阻止下划线被解释为下标。但是,命令:
fig = HeatMap(mat,'Colormap','fontName','Arial','Interpreter','none')
导致错误:
Unknown parameter name: fontName.
Unknown parameter name: Interpreter.
和命令:
set(fig,'fontName','Arial','Interpreter','none')
结果:
The name 'fontName' is not an accessible property for an instance of class 'HeatMap'.
The name 'Interpreter' is not an accessible property for an instance of class 'HeatMap'.
如何获得我想要的结果?
答案 0 :(得分:1)
这里,HeatMap视图(构造HeatMap对象时显示的内容)不等同于常规绘图,并且相当不灵活。幸运的是,HeatMap可以渲染为情节,允许操纵。该示例取自This Mathworks site。
load filteredyeastdata
yeastvalues = yeastvalues(1:5, 1:4);
genes = genes(1:5, :);
genes = strrep(genes, 'L', 'L_'); %// simulate underscores
times = times(1:4);
dat = DataMatrix(yeastvalues, genes, times);
heatmap = HeatMap(dat); %// no way to suppress?
可以使用HeatMap
或properties(<object>)
(列出当前设置)查看set(<object>)
对象的可用属性。从那里,可以直接看到哪些属性不可用(没有'fontName'或'Interpreter')。
Mathworks为HeatMaps提供了plot
方法,为我们提供了更广泛的选择。
plt = plot(heatmap); %// render the heat map and give us a handle
有很多与plt
相关联的属性,但看起来你想要的是'TickLabelInterpreter'(参见Axes Properties)。
set
可以将单元格数组或键值对作为输入,这样我们就可以一次性设置多个属性。
set(plt, {'Fontname', 'TickLabelInterpreter'}, {'Comic Sans MS', 'none'});
%// or set(plt, 'Fontname', 'Comic Sans MS', 'TickLabelInterpreter', 'none');
请注意,MATLAB 区分大小写!