Matlab非线性二维图形图

时间:2017-12-22 21:24:05

标签: matlab plot

假设我有一组数据,x范围从0到5(均匀分布,比如间距为0.2),在这个总x范围内,我实际上在y值方面有一些很好的特征,从0到1范围说。除此之外,功能很粗糙。

所以现在我希望一个数字更像是放大到0到1范围,但仍然在绘制总x范围。最好的方案当然不会丢失任何数据点。

目前我确实有一个潜在的解决方案,我从1到5范围(间距为1而不是0.2)中选取稀疏点并首先均匀地绘制出这些数据点。然后使用正确的相应x值进行标记,如下所示(这些只是我在这里用于解释的一些随机数,但这个数字在0到1范围之间没有精细的特征):

x=[0 0.2 0.4 0.6 0.8 1 2 3 4 5];
x1=0:9;
y=[0.1 0.2 0.3 0.4 0.5 1 2 3 4 5];

figure(1)
plot(x1,y,'-o')
set(gca,'xticklabel',x)

Figure plot

但这显然会从1到5范围内丢失一些信息。

是否有更好的方法可以使用原始数据点绘制从0到5的整个范围,但详细显示0到1范围?

谢谢!

2 个答案:

答案 0 :(得分:0)

不确定我理解。那怎么样?

x=[0:.2:1 2 3 4 5];

y=[0.1 0.2 0.3 0.4 0.5 1 2 3 4 5];

figure(1)
plot(x,y,'-o')

答案 1 :(得分:0)

我想说在x轴上具有非均匀间隔的唯一正确方法是使用对数标度。尝试

semilogx(x,y,'-o')