如何在matlab绘图中获得相同图形的y轴上的变量比例?

时间:2014-08-13 17:00:02

标签: matlab

我正在研究matlab编程,我的问题是在y轴上的同一个图形中我需要有变量缩放,例如从0.1到1我需要在0.1之间有一个间隙,但是在1之后我需要比例差距为2,是否有一些命令可用?

3 个答案:

答案 0 :(得分:1)

The Mathworks on Matlab的答案有一个例子,它可以完成您想要实现的目标。我们的想法是在同一个图上创建2个轴,并使用一个轴绘制一些数据(例如0.1:0.1:1刻度线),其余轴放在其他轴上。然后用透明背景覆盖两个轴:

  %Create two overlapping axes
    axes_handle_1 = axes;
    axes_position = get(axes_handle_1, 'Position');
    axes_handle_2 = axes('Position', axes_position);

%Create some data with a large gap in the x domain
    my_x_data = [1:10 25:35];
    my_y_data = rand(1, length(my_x_data));
    %Plot the two sections of data on different axes objects
    plot(axes_handle_1, my_x_data(1:10), my_y_data(1:10))
    plot(axes_handle_2, my_x_data(11:end), my_y_data(11:end))

%Link the y axis limits and fontsize property of the axes objects
    linkaxes([axes_handle_1 axes_handle_2], 'y');
    linkprop([axes_handle_1 axes_handle_2], 'FontSize');
    %Set the x range limits and tick mark positions of the first axes object
    set(axes_handle_1, 'XLim', [1 21], ...
          'XTick', [1 5 10])

%Set the x range limits and tick mark positions for the second axes object.
    %Also set the background color to 'none', which makes the background
    %transparent.
    set(axes_handle_2, 'Color', 'none', ...
          'YTickLabel', [], ...
          'XLim', [14 35], ...
          'XTick', [25 30 35])

这很简单,据我所知,没有内置的方法可以做到这一点,除非文件交换提交。无论如何,如果您对上述代码有疑问,请询问!

答案 1 :(得分:0)

请使用matlab的gca属性。在gca中,您可以将变量设置为比例。通过合并两个不同的比例来创建该变量

x=[1:80];
y=[.1:.1:8];
figure
plot(x,y);

%First Scale
scale1=[.1:.1:1];

%New scale is being started from 3. If we start from 1, 1 will be repeated
scale2=[3:2:9]; 

%Merging two variables scale1  and scale2
set(gca,'YTick',[scale1 scale2]);

请参阅http://www.mathworks.in/help/matlab/creating_plots/change-tick-marks-and-tick-labels-of-graph.html

答案 2 :(得分:0)

您还可以尝试缩放一个数据集,使其具有与其他数据集相似的幅度。在这里,您可以将一个数据集乘以100(或任何合适的缩放参数),然后它将在大小上与其他数据集相似。为了清楚地提及图表中已缩放的数据,请使用图例。

plot(x,data1,x,100*data2)
legend('data1','100*data2','location','southeast')

希望这有帮助。