在Matlab Bioinformatics Toolbox的HeatMap()中更改字体

时间:2016-05-18 17:16:50

标签: matlab bioinformatics heatmap

我在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'.

如何获得我想要的结果?

1 个答案:

答案 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?

enter image description here

可以使用HeatMapproperties(<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');

enter image description here

请注意,MATLAB 区分大小写!