MATLAB如何在横坐标一定的情况下绘制双纵坐标图?

MATLAB不仅是数学计算的好工具,在绘图上也有很大的作用,昨天老师让我帮她画一下exel数据里的图,我拿到数据后看了一下表里的图,是在一个坐标系下画的一个曲线图和直方图:
MATLAB如何在横坐标一定的情况下绘制双纵坐标图?_第1张图片
于是我用matlab作了如下图:
MATLAB如何在横坐标一定的情况下绘制双纵坐标图?_第2张图片
给出一下源代码:

%x,y1,y2都已知的情况下
[a,b,c]=plotyy(x,y2,x,y1,'plot','bar','r');
%plotyy绘制双坐标图,'bar'直方图
xlabel('government subsidy factor');
ylabel(a(1), 'the Carbor price floor');
ylabel(a(2), 'NPV');
%分别表明两个图的横纵坐标的标签
legend(a(1),'the Carbor price floor');
ylabel(a(1), 'the Carbor price floor');
ylabel(a(2), 'NPV');
%图一的图例legend(a(1),'')图二的图例legend(a(2),'')
set(b(1),'color','r','LineWidth',6);
%设置线条颜色、粗细
title('');
%图表标题
set(gca,'xtick',-1:0.3:1);
%设置网格的间距大小'xstick'表示x轴的网格大小
grid on

最后,提醒一下,在matlab里导入数据的时候一定不要出错,不然计算机容易报出一大串的错误提示

??? XLSREAD unable to open file mc2.xlsx.
Error using ==> iofun\private\validpath
File C:\Program Files (x86)\work\mc2.xlsx not found.

在这里插入图片描述
遇到这种情况,先改一下workspace,检查表格里的数据是否如上图会提示更新,也即是没带公式计算的,如果有,这选择性粘贴数值到exel里!

你可能感兴趣的:(matlab)