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
B(1,1)= 0.6,但它出现在0(X轴)。与B(2,1)= 0.15相同
怎么纠正这个?
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')
足以显示你的情节
您的x轴从0到250000.在该范围内,0.6和0.15几乎为0。
如果需要,可以使用semilogx
在x轴上使用对数刻度