如何在Matlab中绘制点和矢量

问题描述 投票:-1回答:2
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相同

怎么纠正这个?

matlab vector plot point
2个回答
2
投票

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
投票

您的x轴从0到250000.在该范围内,0.6和0.15几乎为0。 如果需要,可以使用semilogx在x轴上使用对数刻度

© www.soinside.com 2019 - 2024. All rights reserved.