MATLAB画双x坐标的图
我们就来看一下怎样用MATLAB画出双x坐标的图,同时做好各种标注
操作方法
- 01
输入要做图的数据 x1 = [1 2 3 4 5 6]; x2 = [0.1 0.2 0.3 0.4 0.5 0.6]; y = [5 6 7 8 9 10];
- 02
然后先根据x1和y画图, h1= line(x1,y,'Color','k','Marker','s','MarkerEdgeColor','k','MarkerFaceColor','k'); 后面这几个'Color','Marker','MarkerEdgeColor'和'MarkerFaceColor'分别是设置线条的颜色,marker的形状,marker边框的颜色,marker内部的颜色。 这样MATLAB也会自动生成一个坐标系,然后我们用下面的语句拿到当前坐标系的句柄ax1,并对当前坐标系进行颜色设置。 ax1 = gca; set(ax1,'XColor','k','YColor','k');
- 03
然后根据坐标系1的句柄,设置我们的坐标系2。 ax2 = axes('Position',get(ax1,'Position'),'XAxisLocation','top','XColor','k','YColor','k'); 其中,'Position'这个属性设置坐标系2和坐标系1的原点位置一致;'XAxisLocation'设置坐标系2的x轴是在作图的上方'top'还是下方'bottom',一般选择上方,不然就和坐标系1的x轴重合了;同理'YAxisLocation'可以是'left'或者'right'; 'XColor'和'YColor'分别是对x轴和y轴的颜色设置。 由于我们两个坐标系的y轴都在左侧,可以看到y轴的刻度是不一样的,然后看起来比较杂乱的两种。这是因为坐标系2的坐标轴刻度是系统初始化的,一旦画线之后,由于我们的y值都是一样的,两个坐标系的y周刻度就自动变为一样的了,就不会有这种情况了(见下一步骤中图片)。
- 04
然后两个坐标系都设置好之后,我们可以用下面的语句在坐标系2中画线。 h2 = line(x2,y,'Color','k','Marker','s','MarkerEdgeColor','k','MarkerFaceColor','w','Parent',ax2); 其中,'Parent’是确定我们这条线是画在ax2这个坐标系下的。
- 05
最后我们设置两个坐标系中x轴, y轴的label。 xlabel(ax1,'x1 label name');xlabel(ax2,'x2 label name');ylabel(ax1,'y label name','Color','k'); ax1和ax2分别是坐标系1和坐标系2的句柄,以上三个语句分别设置坐标系1的x轴label,坐标系2的x轴label,坐标系1的y轴label.
- 06
最后我们添加每条直线的标注。 legend([h1,h2],'line1','line2'); h1和h2分别是两条直线的句柄,我们用legend语句设置了着两条直线的标注。