Matlab 绘制双y轴柱状图

编程入门 行业动态 更新时间:2024-10-28 00:28:23

Matlab 绘制双y轴<a href=https://www.elefans.com/category/jswz/34/1767203.html style=柱状图"/>

Matlab 绘制双y轴柱状图

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、数据准备
  • 二、处理思路及代码实现
    • 1.x的处理
    • 2.y的处理
    • 3.绘制条形图
  • 总结


前言

自己在论文出图的过程中,想用matlab出类似于下图这种:1、两个y特征数量级差距大不适合用单个y轴绘制柱状图;2、x轴坐标不是数值而是分类的柱状图。

基于上面的需求,找到了一个笨笨无脑的办法来实现上述功能。


一、数据准备

原始数据

x=({'类别一','类别二','类别三','类别四','类别五'});
y1=[3,5,8,11,13];
y2=[0.01 0.06 0.04 0.08 0.05];

二、处理思路及代码实现

1.x的处理

代码如下(示例):

xx = categorical({'类别一','类别二','类别三','类别四','类别五'});    %定义分类数组
xx = reordercats(xx,{'类别一','类别二','类别三','类别四','类别五'});    %调用 reordercats 函数来指定条形的顺序

2.y的处理

运用‘yyaxis’将y1和y2画在两个图层,为了保证两个图层不重叠,引入两个零数组

代码如下(示例):

y1=[3,5,8,11,13];
oo=[0,0,0,0,0];   %引入的零数组
y2=[0.01 0.06 0.04 0.08 0.05];

3.绘制条形图

yyaxis left      %激活左侧
hold on
b1=bar(xx,[y1;oo]);    %引入零数组
ax = gca;
ax.YColor='black';yyaxis right      %激活右侧
hold on
b2=bar(xx,[oo;y2]); %引入零数组
legend([b1(1,2) b2(1,1)],{'图例1','图例2'}) ;   %只显示原始数据的图例
box on
ax = gca;
ax.YColor='black';

然后就能得到向前面展示的那样的图片;
嘿嘿嘿~

总结

感觉这种方法比平移右边坐标轴的起始位置要简单,当然也是本人数据有时候捣拾不明白;如果大家有更简单的方法请指教!

更多推荐

Matlab 绘制双y轴柱状图

本文发布于:2024-02-17 14:43:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1694386.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:柱状图   Matlab

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!