Как нарисовать только некоторые линии в pcolor-графике MATLAB? - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть блочная матрица, которую я визуализирую с помощью pcolor. Я хотел бы как-то визуализировать структуру блоков, поэтому я ищу смесь между shading flat внутри каждого блока и shading faceted на границах, что-то вроде

a | b c | d e f
- + - - + - - -
g | h i | j k l
m | n o | p q r

(где каждая буква представляет значение цвета, а строки разделяют блоки) Как этого достичь?

1 Ответ

1 голос
/ 20 июля 2012

Вы можете использовать imagesc или imshow (используя axis xy или axis ij, как требуется для ориентации). Затем просто установите для местоположений xtick и ytick те, которые требуются вашими линиями, и наберите grid on.

Так например

imagesc(im);
grid;
set(gca, 'xtick', [1.5, 2.5, 5.5],...
         'ytick', [3.5, 4.5],...
         'gridlinestyle', '-');

Примечание : чтобы изменить рисунок изображения таким образом, чтобы вы могли работать с целочисленными точками сетки, вместо этого можно было бы вызвать imagesc(0.5 : (size(im,1)-0.5), 0.5 : (size(im,2)-0.5), im), поскольку это смещает положения пикселей на -0,5. Кроме того, хотя вы можете изменить свойство axis linewidth, я не думаю, что вы можете получить доступ к ширине линий сетки напрямую - для этого уровня контроля вы можете написать небольшую быструю функцию для добавления линий, которая даст вам полный набор контроль над каждой линией; или измените этот этот скрипт , который делает именно это!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...