Как построить точки и векторы в Matlab - PullRequest
0 голосов
/ 13 сентября 2018
A = [239920.240412166 1.31193313030682;
243577.444235102 1.38185205485119;
241899.250050298 1.51264147493485;
244659.326936560 1.50845243215867;
239862.361809342 1.50810833389632;
238395.616682194 1.37125000688350;
244558.389789124 1.27212093329482;
244290.890880318 1.35116080948488;
240303.711239396 1.36064181572699;
237464.430450140 1.48857869573721;
244415.381196104 1.51252425335623;
239855.328594799 1.29178640586301;
239304.806448742 1.31075813783171;
244827.243024016 1.32080934043223;
241465.885648910 1.53667019314427;
241139.254464482 1.40424079027764;
242300.037630214 1.27160249886092;
243330.396959248 1.61411410292679;
237530.389940994 1.21846939260826];

B = [0.6 0.18; 0.15 0.46];  % green circles

for i=1:2   
    plot(A(:,1),A(:,2),'r*');
    hold on     
    plot(B(i,1),B(i,2), '-ko',...
                    'LineWidth',1,...
                    'MarkerFaceColor',[.49 1 .63],...
                    'MarkerSize',9);    
end

Когда я нанес A и B, я получил это: enter image description here

B (1,1) = 0,6, но отображается в 0 (ось X). То же самое с B (2,1) = 0,15

Как это исправить?

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Логарифмическая шкала по оси x поможет с представлением

set(gca, 'XScale', 'log')

Однако это приведет к тому, что теперь значения A заполняют одну вертикальную линию.

Если вы не можете жить с этим, вы можете попробовать сломанную ось X.MATLAB не поддерживает это со встроенными функциями, но в обмене файлами MATLAB есть решение

https://de.mathworks.com/matlabcentral/fileexchange/3683-breakxaxis

Кстати: в вашем коде нет необходимости в цикле.На самом деле вы наносите A дважды друг на друга.Всего

% Plot A and B without loop
plot(A(:,1), A(:,2),'r*')
hold on
plot(B(:,1), B(:,2), '-ko', 'LineWidth', 1, ...
    'MarkerFaceColor', [.49 1 .63], 'MarkerSize',9)

% Set x axis to logarithmic scale
set(gca, 'XScale', 'log')

достаточно для отображения вашего графика

0 голосов
/ 13 сентября 2018

Ваша ось х проходит от 0 до 250000. В этом диапазоне 0,6 и 0,15 практически равны 0.
Если вы хотите, вы можете использовать логарифмическую шкалу по оси X, используя semilogx

...