如何在MATLAB中创建这样的网格图?

时间:2015-12-31 23:03:23

标签: matlab graphics

我有这样的数据

-1 -1 -1 1 0 0 1 1 -1 0 1 -1 0 1

其中向量的每个元素是几个状态之一。在这种情况下(这是任意的,显然只是一个例子),是-1 0 1。我正在尝试制作一个像这个网格的情节:

example mock up

我能得到的最接近的是spy和各种调整的组合:

%% ARBITRARY example data
states = [-1 0 1];
data = [-1 -1 -1 1 0 0 1 1 -1 0 1 -1 0 1];

%% Approximate plot using sparse matrix and spy
T = size(data, 2);
num_states = size(states, 2);
g = zeros(num_states, T);
for idx = 1:T
    jdx = find(data(idx) == states, 1, 'first');
    g(jdx, idx) = 1;
end
g = sparse(g);

%% Tweak plot
obj = figure();
obj.Color = 'white';
spy(g, 30)

s = obj.Children(1);
s.XLim = [1 T];
s.YLim = [1 num_states];
s.XLabel.String = '';
s.XGrid = 'on';

s.YTick = 1:num_states;
s.YTickLabel = num2cell(states);
s.GridLineStyle = '-';
s.YGrid = 'on';

然而,这远非理想,因为a)它实际上不是阴影网格,并且b)y轴上的刻度从底部开始按降序排列,因为这是spy的方式功能,以及其他问题。我如何制作这样的情节?我在Windows 7 64位计算机上使用MATLAB 2015b。

1 个答案:

答案 0 :(得分:4)

你想要玩颜色和网格,但这应该足以开始:

def _on_connection_error(self, connection_unused, error_message=None):

以上结果

enter image description here