需要画股票指数变化的图,从excel导入数据,命令如下所示
clear;clc;
fsize=12;
[num,date]=xlsread('I-index');%读取国际指数表的数据
datenumber=datenum(date);%将表的第一列日期转化为日期序列%num矩阵从左往右的指数依次是标普500、法国CAC、富时100、德国DAX、日经225、恒生指数
figure;
yyaxis left;%左侧纵坐标
plot(datenumber,num(:,1),'b','linewidth',2);hold on%标普500,蓝色实线无标志
plot(datenumber,num(:,2),'r-x','linewidth',2,'MarkerSize',8,'MarkerFaceColor','r','MarkerIndices',1:15:length(datenumber));hold on%法国CAC,红色实线叉号符
plot(datenumber,num(:,3),'b:s','linewidth',2,'MarkerSize',6,'MarkerFaceColor','b','MarkerIndices',1:15:length(datenumber));hold on%富时100,绿色划线方形符号
ylabel('Index','FontSize',fsize);%左轴标签
yyaxis right;%右侧纵坐标
plot(datenumber,num(:,4),'k:','linewidth',2);hold on%德国DAX,蓝色实线无标志
plot(datenumber,num(:,5),'b-o','LineWidth',2,'MarkerSize',5,'MarkerFaceColor','b','MarkerIndices',1:15:length(datenumber));hold on;hold on%日经225,蓝色实线圆圈标记
plot(datenumber,num(:,6),'r:o','linewidth',2,'MarkerSize',5,'MarkerFaceColor','r','MarkerIndices',1:15:length(datenumber));hold on%恒生指数,红色实线加号标记
ylabel('Index','FontSize',fsize);%右轴标签
xlabel('Date of Stock Exchange','FontSize',fsize);%横轴标签
datetick('x',26);%将横轴坐标值转化为日期
box off;%去掉边框
leg1=legend('S&P 500','CAC 40','FTSE 100','Der Dax','NIKKEI 225','Hang Seng Index');%线条标签
legend boxoff;
结果出来的图横坐标的刻度只有三个,像这样
把 datetick('x',26);%将横轴坐标值转化为日期 去掉之后,变成了这样
怎么解决啊?求助
参考一下https://ww2.mathworks.cn/help/matlab/matlab_prog/plot-dates-and-durations.html
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y