Matlab绘制双坐标轴柱状/条形图

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

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

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

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

Matlab绘制双坐标轴柱状/条形图_第1张图片

来源:百度知道

要么两者是分开的:

Matlab绘制双坐标轴柱状/条形图_第2张图片

来源:CSDN-tianren9

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

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

Matlab绘制双坐标轴柱状/条形图_第3张图片

 

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

像这样:

Matlab绘制双坐标轴柱状/条形图_第4张图片

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

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);

Matlab绘制双坐标轴柱状/条形图_第5张图片

3. 左轴绘制

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

Matlab绘制双坐标轴柱状/条形图_第6张图片

看到了吗?

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

4. 右轴绘制

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

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

Matlab绘制双坐标轴柱状/条形图_第7张图片

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

Matlab绘制双坐标轴柱状/条形图_第8张图片

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

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

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

获取方式:

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

你可能感兴趣的:(Matlab插图,matlab,可视化,论文插图)