Я хочу, чтобы создать фигуру, которая увеличивается, я использую:Увеличить рисунок в MATLAB
fig = figure(1); %These two lines maximize the figure dialogue
set (fig, 'Units', 'normalized', 'Position', [0,0,1,1]);
Диалог увеличивается. Что мне делать, если я также хочу, чтобы график внутри этого диалога также расширялся? Хотя я могу использовать «масштабирование» и «панорамирование» в диалоге, чтобы увеличить и переместить мой график, я хочу, чтобы это выполнялось автоматически по кодам.
Большое спасибо.
Обновление моего вопроса:
Я пытаюсь построить 3D блок, значение представлено цветом каждого небольшого блока блока:
clear; close all; clc;
fig = figure(1);
set (fig, 'Units', 'normalized', 'Position', [0,0,1,1]);
fig_color='w'; fig_colordef='white';
cMap=jet(256); %set the colomap using the "jet" scale
faceAlpha1=1;
faceAlpha2=0.65;
edgeColor1='none';
edgeColor2='none';
NumBoxX=100;%box number in x direction
NumBoxY=100;%box number in y direction
NumBoxZ=5;%box number in z direction
fid = fopen('Stress.dat','r');
datacell = textscan(fid, '%f%f%f%f%f%f%f%f%f%f%f%f%f%f');
fclose(fid);
all_data = cell2mat(datacell);
M=zeros(NumBoxX,NumBoxY,NumBoxZ);
for i=1:NumBoxX
for j=1:NumBoxY
for k=1:NumBoxZ
num=k+NumBoxZ*(j-1)+NumBoxZ*NumBoxY*(i-1);
M(i,j,k)=all_data(num,4); %the forth column of all_data is dislocation density
end
end
end
indPatch=1:numel(M);
[F,V,C]=ind2patch(indPatch,M,'v'); %Call the function ind2patch in order to plot 3D cube with color
title('\sigma_{xy}','fontsize',20);
xlabel('y','fontsize',20);ylabel('x','fontsize',20); zlabel('z','fontsize',20); hold on;
set(get(gca,'xlabel'),'Position',[5 -50 30]);
set(get(gca,'ylabel'),'Position',[5 50 -15]);
set(get(gca,'zlabel'),'Position',[64 190 -60]);
patch('Faces',F,'Vertices',V,'FaceColor','flat','CData',C,'EdgeColor','k','FaceAlpha',0.5);
axis equal; view(3); axis tight; axis vis3d; grid off;
colormap(cMap); caxis([min(M(:)) max(M(:))]);
cb = colorbar;
set(get(cb,'title'),'string','Stress (MPa)','fontsize',20);
lbpos = get(cb,'title'); % get the handle of the colorbar title
set(lbpos,'units','normalized','position',[0,1.04]);
zoom(1.9);
Я максимизировать диалог, чтение данных из файла и используйте функцию «ind2patch», найденную в Интернете для создания ящиков, каждая из которых имеет цвет, определенный назначенным ему значением. В последней части я использовал масштабирование (1.9), чтобы увеличить его, но я хочу переместить всю фигуру, не перемещая цветную панель.
Ниже исходное изображение, прежде чем масштаб изображения: https://www.dropbox.com/s/xashny3w1fwcb2f/small.jpg?dl=0
Следующая фотография увеличена с помощью увеличения (1.9): https://www.dropbox.com/s/0sfqq1lgo7cm5jd/large.jpg?dl=0
спасибо. Я увеличил его сейчас. Но я хочу изменить его так же, как использовать кнопку «панорамирование». Как я могу сделать это программно? –
Я редактирую свой ответ – BillBokeey
Я скопировал ваши коды, но обнаружил, что он только увеличивает пределы осей x и y. Поскольку мои данные охватывают только блок 100x100x4, избыточная область становится белой. Но то, что я хочу переместить, - это целая фигура, а не просто расширение лимита осей. Я использую метод patching для построения 3D-изображения, не влияют ли на результат? –