MATLAB:如何为一个图形创建双轴

时间:2015-12-10 10:29:59

标签: matlab plot

我试图创建一个失效强度与材料刚度的图。然而,刚度可以是[Pascal]或[Shore A] - 我想在双轴图中使用两者。

我尝试使用 plotyy ,但它不允许我有一个线图,也不允许Pascal和Shore A之间的非线性关系。我想绘制其中之一,然后手动添加其他滴答之间的间距。

最好是我想要x轴上的刚度,但如果更容易,y轴可以做到。

欢迎任何帮助!

here

1 个答案:

答案 0 :(得分:3)

当您需要双x轴和双y轴绘图时,这可能对您有所帮助,但如果您需要单个y轴和两个x轴,则可以相应地进行修改:

此示例显示如何使用第一个绘图的轴的底部和左侧以及第二个绘图的轴的顶部和右侧创建图形。

创建要绘制的数据。

x1 = 0:0.1:40;
y1 = 4.*cos(x1)./(x1+2);
x2 = 1:0.2:20;
y2 = x2.^2./x2.^3;

使用线条函数使用红线绘制y1与x1的关系。将x轴和y轴的颜色设置为红色。

注意:从R2014b开始,您可以使用点表示法来设置属性。如果您使用的是早期版本,请改用set函数,例如set(ax1,'XColor','r')。

figure
line(x1,y1,'Color','r')
ax1 = gca; % current axes
ax1.XColor = 'r';
ax1.YColor = 'r';

通过将第二个轴的位置设置为等于第一个轴的位置,在与第一个轴相同的位置创建第二个轴。将x轴的位置指定为图形的顶部,将y轴指定为图形的右侧。将轴颜色设置为“无”,以便第一个轴在第二个轴下可见。

ax1_pos = ax1.Position; % position of first axes
ax2 = axes('Position',ax1_pos,...
'XAxisLocation','top',...
'YAxisLocation','right',...
'Color','none');

使用线函数在第二轴上绘制y2与x2的关系曲线。将线条颜色设置为黑色,使其与相应的x轴和y轴的颜色匹配。

line(x2,y2,'Parent',ax2,'Color','k')

该图包含两条与不同轴对应的线。红线对应红轴。黑线对应黑轴。

来源:

http://www.mathworks.com/help/matlab/creating_plots/graph-with-multiple-x-axes-and-y-axes.html