繁体   English   中英

在MatLab中绘制X轴

[英]Plotting x-axis in MatLab

使用以下变量:

  • SP :包含随机数的已知8x1行向量。
  • YP :包含随机数的已知8x1行向量。

我有八个数据点。 对于x轴上的每8个数据点,我有以下标签:

资产1-资产2-资产3-资产4-资产5-资产6-资产7-资产8

问题:实现代码时,我得到的标签数量是无限的。

这是我从MatLab的输出:

我的输出

这是我的代码:

SP = rand(8,1)/100;
YP = (rand(8,1)/100)*2;
plot(YP,'DisplayName','YP');
hold on;
plot(SP,'DisplayName','SP');
hold off;
title('SP and YP monthly returns');
xlabel('Monthly time series');
MY = 'Siemens SAP Daimler Allianz DEU.Telekom Adidas BMW DEU.Bank';
set(gca, 'xTickLabels', 'Asset1 Asset2 Asset3 Asset4 Asset5 Asset6 Asset7 Asset8');
xticklabel_rotate('Asset1 Asset2 Asset3 Asset4 Asset5 Asset6 Asset7 Asset8');
ylabel('Percentage of prices discounts');
set(gca, 'yTickLabels', num2str(100.*get(gca,'yTick')','%g%%'));

您需要为'XTickLabel'使用一个字符数组单元格数组 ,而不是一个字符数组

labelCell = {'Asset1' 'Asset2' 'Asset3' 'Asset4' 'Asset5' 'Asset6' 'Asset7' 'Asset8'};
set(gca, 'xTickLabel', labelCell);

当像您一样传递字符数组时,MATLAB只会为每个刻度标签回收整个对象。 如果仍要旋转标签,则还必须将单元格数组传递给xticklabel_rotate 但是,较新版本的MATLAB允许您通过修改'XTickLabelRotation'属性来执行此操作:

set(gca, 'XTickLabelRotation', 45);  % Rotate by 45 degrees

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM