如何在Matlab / Origin上绘制间距不均匀的数据?

时间:2018-07-30 05:50:27

标签: matlab plot graph logarithm

我想绘制以下数据:

x-axis: [0,10,50,100,500,1000,1500]
y-axis: [75.6,78,78.2,81.8,84.7,85.2,86.3]

如上所示,x轴上的数据间隔不均匀。当我使用origin线性绘制上述数据时,得到: enter image description here

我在Matlab上也得到了类似的图形。请注意,大多数Amp数据都位于x<500中。我想绘制图形以便整个输出(y轴)清晰可见。为此,我尝试使用对数图。我在Matlab中将x轴更改为对数,如下所示:

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

在Origin中,我们可以使用GUI将x轴更改为对数。获得的图形如下:

Origin graph

Matlab plot

所获得的图形仍然不好。任何想法,请!

非常感谢您。

2 个答案:

答案 0 :(得分:2)

https://www.mathworks.com/help/matlab/ref/semilogx.html

x = [0,10,50,100,500,1000,1500];
y = [75.6,78,78.2,81.8,84.7,85.2,86.3];
semilogx(x,y,'.-', 'markersize', 15);
set(gca,'XTick',x);
set(gca,'XTickLabelRotation',45);

答案 1 :(得分:2)

x = [0,10,50,100,500,1000,1500];
y = [75.6,78,78.2,81.8,84.7,85.2,86.3];
y2 = [80,84,85,86,89,90,92];
semilogx(x+1,y,'.-', 'markersize', 15);
set(gca,'XTick',x);
set(gca,'XTickLabelRotation',45);
hold on;
semilogx(x+1,y2,'.-', 'markersize', 15);
hold off;
grid on;
legend('y1','y');