MATLAB-除对数外,增加x轴点之间的间距(非均匀绘图)

matlab plot matlab-figure

1244 观看

1回复

12 作者的声誉

我想增加x轴点之间的间距,以便例如在下图中,10 30之间的距离增加而1150与1300之间的距离减小。

在此处输入图片说明

作者: martin 的来源 发布者: 2016 年 2 月 26 日

回应 (1)


0

20435 作者的声誉

回答新问题(使x轴字段变形以影响点):

不幸的是,我的研究表明在MATLAB中没有内置的方法可以做到这一点。我看到其他人建议:

  1. 扭曲您自己的数据中的字段,例如将x值从10、30和50更改为100、300和500,以获得10倍放大率,然后将500添加到所有其他x值中,以便它们向右移动;然后修改标签(见下文)以读取“ 10”,“ 30”,“ 50”,“ 100”等。

  2. 使用直方图,您的x轴标签成为bin,例如 10、30、50、100 等,然后使用空bin来分隔点。

回答旧问题(影响x轴标签和刻度,而不是点):

MathWorks文档看来,您可以随意设置刻度位置,无论是否一致:

ax = gca;
ax.XTick = [-3*pi -2*pi -pi 0 pi 2*pi 3*pi];
ax.YTick = [-1 -0.5 0 0.5 1];

% For R2014a and earlier:
% ax = gca;
% set(ax,'XTick',[-3*pi -2*pi -pi 0 pi 2*pi 3*pi])
% set(ax,'YTick',[-1 -0.5 0 0.5 1])

因此,编写一个函数以创建所需的间距并将其返回值分配给XTick。在您的情况下,您似乎只需要检索要绘制的点的域值即可。

作者: Andrew Cheong 发布者: 26.02.2016 07:31
32x32