#MATLAB绘图,绘制双轴柱状图 MATLAB#绘图

一.绘图前数据准备 

  定义x轴即变量,定义y轴因变量(左右两轴的数值) 

 

 

 

二.窗口设置,图片尺寸标注以及图像颜色的定义

  这里设置图片高度为8,宽度为12,定义颜色为红色和绿色 

 

 

 

三.柱状图左右两轴的定义 

  左右两轴颜色,刻度,范围,以及标注的定义 

 

 

四.标注优化 

  对x轴进行标注,同时优化x轴以及左右两轴的细节优化 

 

 

五.MATLAB下绘制的双轴柱状图 

 

 

六.MATLAB绘图源码 

 

% 读取数据
% 自变量    
X = 1:5;    %5个样本数对应x轴
% 因变量
A = [98.2 88.3 96.8 94.1 93.3
     12.4 8.9 11.5 9.8 9.6];   %对应y轴的值
bar1 = [A(1,:)',zeros(5,1)];   %标注左右两轴值
bar2 = [zeros(5,1),A(2,:)'];

%% 图片尺寸设置(单位:厘米)
figureUnits = 'centimeters';
figureWidth = 12;         %定义宽度
figureHeight = 8;         %定义高度

%% 窗口设置
figureHandle = figure;
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]); % define the new figure dimensions
hold on

%% 颜色定义
C1 = 'b';            %简写这里"b"表示颜色为红色red
C2 = 'g';            %这里"g"表示颜色为绿色green

%% 定义左轴
yyaxis left
GO1 = bar(X,bar1,1,'EdgeColor','k','FaceColor',C1);
hYLabel1 = ylabel('总额');
set(gca,  'YColor', [.1 .1 .1],...         % 坐标轴颜色
          'YTick', 0:10:100,...        % 刻度位置、间隔
          'Ylim' ,[80 100],...            % 坐标轴范围
          'Yticklabel',{[0:10:100]})   % Y坐标轴刻度标签

%% 定义右轴折线图
yyaxis right
GO2 = bar(X,bar2,1,'EdgeColor','k','FaceColor',C2);
hYLabel2 = ylabel('人数');
set(gca, 'YColor', [.1 .1 .1],...     %标注与左轴类似
         'YTick', 0:5:15, ...
         'Ylim' ,[5 15], ...
         'Yticklabel',{[0:5:15]})

     
%% X轴与其它细节调整
set(gca, 'Box', 'off', ...                                         % 边框
         'XGrid', 'off', 'YGrid', 'on', ...                        % 网格
         'TickDir', 'out', 'TickLength', [.01 .01], ...            % 刻度
         'XMinorTick', 'off', 'YMinorTick', 'off', ...             % 小刻度
         'XColor', [.1 .1 .1],...                                  % 坐标轴颜色
          'Xticklabel',{'samp1' 'samp2' 'samp3' 'samp4' 'samp5'})  % X轴标签

     
hLegend = legend([GO1(1),GO2(2)], ...
    'Acurracy', 'Time', ...
    'Location', 'northeast','orientation','horizontal');

% Legend位置微调 
P = hLegend.Position;
hLegend.Position = P + [0.01 0.02 0 0];

% 刻度标签字体和字号
set(gca, 'FontName', 'Helvetica', 'FontSize', 10)

figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figW figH]);
fileout = 'test';
print(figureHandle,[fileout,'.png'],'-r600','-dpng');

 

   

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁满满满满

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值