如何用MATLAB做双纵坐标图?其中一条是折线图,另一个是柱形图,还有我想做多子图的

2025-03-10 15:39:19
推荐回答(3个)
回答1:

看上去这个图好像是用Excel做的。

用MATLAB做当然也可以实现,但在一些细节上会有一定差异,要实现和图中完全相同的效果比较困难。

多子图用subplot函数就可以了,不多说。

绘制双纵坐标图用plotyy函数,如果图的形式不同,可以用下面的方式

plotyy(X1,Y1,X2,Y2,'function1','function2')

指定绘图的函数,例如

plotyy(1:10,sin(1:10),1:10,sin((1:10)*0.3),@plot,@bar)

而线型、线宽、颜色以及坐标轴的YTickLabel等需要调用plotyy时返回句柄,然后再用set去设置了。

回答2:

x=readtable('练习数据.xlsx','sheet','设备价值');
bar(x.value)
ax=gca;
ax.YLim=[0 140000];
ax.YTick=[0:10000:280000];
ax.YTickLabel=[0:10000:140000];
ax.XTickLabel=x.name;
ax.XLabel.String='项目';
ax.YLabel.String='金额 ';
ax.Title.String='设备金额';
hold on
scatter(ax.XTick,x.value);
plot(ax.XTick,x.value);

回答3:

yyaxis right;
plot();
yyaxis left;
plot();