Matlab非线性二维图形图

问题描述 投票:0回答:2

假设我有一组数据,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范围?

谢谢!

matlab plot
2个回答
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')

0
投票

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

semilogx(x,y,'-o')
© www.soinside.com 2019 - 2024. All rights reserved.