用matlab画散点图并用光滑曲线连接/效率曲线
Excel内容:
代码:
%%清屏
clear ;
close all;
clc;
% param1:Excel文件名,无需扩展名
% param2:第几个Sheet,不是sheet的名,就是打开excel后,左下角的第几个
% param3:区域,表示方法和excel中的一样。
format short
[Num]=xlsread('THD',1,'A1:D5');
x=Num(:,1);
y1=Num(:,2);
y2=Num(:,3);
y3=Num(:,4);
x=Num(:,1);
y1=Num(:,2);
y2=Num(:,3);
y3=Num(:,4);
xx=linspace(1,5);
yy1=spline(x,y1,xx);
yy2=spline(x,y2,xx);
yy3=spline(x,y3,xx);
% sets the hold state for the axes
hold(gca,'on');
% 画出散点图
% plot(x,y1,'hexagram',x,y2,'o',x,y3,'square')
plot(x,y1,'hexagram','MarkerFaceColor',[0 0.4470 0.7410],...
'MarkerEdgeColor',[0 0.4470 0.7410],'LineWidth',1.5)
plot(x,y2,'o','MarkerFaceColor',[0.9290 0.6940 0.1250],...
'MarkerEdgeColor',[0.9290 0.6940 0.1250],'LineWidth',1.5)
plot(x,y3,'square','MarkerFaceColor',[0.4940 0.1840 0.5560],...
'MarkerEdgeColor',[0.4940 0.1840 0.5560],'LineWidth',1.5)
% 画出拟合后的曲线图
% plot(xx,yy1,xx,yy2,xx,yy3)
plot(xx,yy1,'LineWidth',1.5,'Color',[0 0.4470 0.7410])
plot(xx,yy2,'LineWidth',1.5,'Color',[0.9290 0.6940 0.1250])
plot(xx,yy3,'LineWidth',1.5,'Color',[0.4940 0.1840 0.5560])
% 取消以下行的注释以保留坐标区的 X 范围
xlim(gca,[0.5 5.5]);
% 取消以下行的注释以保留坐标区的 Y 范围
ylim(gca,[94 99]);
% 外边框开,gca:返回当前axes对象的句柄值
box(gca,'on');
% hold off
hold(gca,'off');
% 设置其余坐标区属性,可设置好了由代码生成
set(gca,'GridLineStyle','--','LineStyleOrder',{'-'},'LineWidth',0.75,...
'MinorGridAlpha',0.1,'XGrid','on','XMinorGrid','on','XTick',[1 2 3 4 5],...
'XTickLabel',{'1','2','3','4','5'},'YGrid','on','YMinorGrid','on','YTick',...
[94 95 96 97 98 99]);
效果
参考
[1]: https://blog.csdn.net/cantjie/article/details/70216875