проблема с сохранением графики Matlab как SVG: файл SVG имеет неправильную длину осей - PullRequest
0 голосов
/ 07 февраля 2019

У меня проблема с сохранением рисунка Matlab как ".svg" и последующим открытием его в Inkscape.Точнее, мне нужно два участка для определенной высоты, то есть 6 см.Это можно сделать в Matlab, установив свойство «Положение» (и установив единицы измерения в «сантиметры»).Это все работает, как и ожидалось, и я затем экспортирую фигуру как «.svg»

Проблема в том, что когда я импортирую фигуру в Inkscape, длина осей близка к значению, которое я установил, но не правильно.Т.е. я установил 6 см, а в Inkscape - 6,28.Это не является большой ошибкой, но она полностью отрицает цель ее определения.Есть идеи?

Я пытался экспортировать рисунок несколькими разными способами, но результат всегда одинаков.

figure('name','representative plasticity figure');
set(gcf,'Color','w','units','centimeters','position',...
[0 0 8.6 8.4],'PaperPositionMode','auto'); 
s1=subplot(2,1,1)
img = imagesc(magic(8)); hold on; 
set(gca, 'TickDir','out','FontSize',8.5,'LineWidth',0.59,'TickLength'...
,[0.03 0.00001]); 
c1 = colorbar; c1.Box = 'off';c1.TickDirection = 'out'; c1.FontSize = 8.5; 

ax1 = gca; ax1.Units = 'Centimeters';ax1.Position(3:4) = [3.427, 1.59]; 
box off;  % THIS IS THE SIZE I NEED BUT WHICH ISN'T PRINTED CORRECTLY

c1.Label.String = '[whatever]';
subplot(2,1,2)
p1=plot(randi(5,5),'r','LineWidth',0.64); hold on; 
box off; set(gca, 'TickDir','out','TickLength',...
[0.03 0.00001],'FontSize',8.5,'LineWidth',0.64);% legend('pre','post'); 
legend('boxoff');
ax2 = gca;ax2.Units = 'Centimeters';ax2.Position(3:4) = ax1.Position(3:4); 
xlabel ('whatever' ); ylabel('whatever');
print myplot -dsvg

Размер рисунка должен быть [3,427, 1,59] в см.И это так в итоговой фигуре Matlab, однако в Inkscape это больше похоже на 3,6 и 1,7.

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