matlab如何画双柱状图

您所在的位置:网站首页 双纵坐标柱形图 matlab如何画双柱状图

matlab如何画双柱状图

2022-05-22 17:49| 来源: 网络整理| 查看: 265

书接上回(Matlab论文插图绘制模板—双轴折线图)。

假如我们想用Matlab绘制这样一幅图:

柱形图bar1表示算法的精度,柱形图bar2表示算法的运行时间,两者是同一参数X的因变量,但所代表的是完全不同的事物,很难在同一张图表示。

即便是在同一张图,你能找到的,要么两者重叠在一起,

来源:百度知道

要么两者是分开的:

来源:CSDN-tianren9

如果要同一X对应两个不重叠的bar,该怎么做呢?

之前分享过Matlab柱状图的绘制模板。

 

这次我们同样在其基础上升级一下,画一个双轴柱状图。

像这样:

模板中最关键的部分内容:

1. 数据准备

假如我们有数据A:

A = [98.2 88.3 96.8 94.1 93.3 12.4 8.9 11.5 9.8 9.6];

第一行表示精度(左轴),第二行表示时间(右轴)。

分别构造两个矩阵bar1和bar2:

bar1 = [A(1,:)',zeros(5,1)];bar2 = [zeros(5,1),A(2,:)'];

2. 颜色定义

一幅图,如果数据普普通通,那就得靠配色加持了。

配色是一件比较考验个人审美的工作,但至少Matlab默认的几个颜色可以先不考虑。

这里我用了之前分享的addcolor工具(Matlab绘制论文插图的270种补充颜色),选择1号和90号颜色。

C1 = addcolor(1);C2 = addcolor(90);

3. 左轴绘制

通过yyaxis left激活左轴,然后按照之前分享的柱状图绘制方法绘制bar1:

看到了吗?

由于bar1的第二列为0,所以在图上不显示。

4. 右轴绘制

同样的,通过yyaxis right激活右轴,继续绘制bar2。

由于bar2的第一列为0,同样在图上不显示。

最后,再添加一点点细节并按要求的分辨率保存:

就得到一幅满足论文要求的双轴柱状图。

至此,折线图、柱状图、双轴折线图、双轴柱状图都有模板了。

下一篇文章会分享什么大家应该能猜到了吧……

获取方式:

Matlab双轴柱状图源码icon-default.png?t=M1L8https://mp.weixin.qq.com/s/3zm_Vter3Ec8AdDqgzSaEQ



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3