How can I display text on pcolor map like in the image below?
18 次查看(过去 30 天)
显示 更早的评论
采纳的回答
Chunru
2022-4-28
L = membrane(1, 100);
s=pcolor(L);
s.EdgeColor='none';
set(gca, 'YDir', 'reverse')
xl = xlim;
yl = ylim;
n = 1;
xy =[];
for i=1:7
iodd = mod(i, 2);
for j=1:7
jodd = mod(j, 2);
if (iodd && ~jodd) || ~iodd && jodd
xy = [xy; j, i];
end
end
end
%map to xlim and ylim
xy(:, 1) = xl(1) + xy(:, 1) * diff(xl)/8;
xy(:, 2) = yl(1) + xy(:, 2) * diff(yl)/8;
text(xy(:,1), xy(:, 2), string(1:24))
更多回答(1 个)
Bjorn Gustavsson
2022-4-28
If you have your text-strings and their respective location you should be able to do this brute-force:
pcolor(X,Y,Z),shading interp
x4t = randn(1,23); % positions just for this example
y4t = randn(1,23); % rather stupid locationing of text
text4labels = 'a':'w'; % not much of information either
fntsz = 15;
fntw = 'bold'
for iT = numel(text4labels):-1:1,
thl(iT) = text(x4t(iT),y4t(iT),text4labels(iT),'fontsize',fntsz,'fontweight',fntw);
end
You'll have to modify the locations and texts to produce anything sensible.
HTH
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Geographic Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!