Matlab论文插图绘制模板第110期—水平双向柱状图

在之前的文章中,分享了很多Matlab柱状图的绘制模板:

进一步,再来看一种特殊的柱状图:水平 双向柱状图

先来看一下成品效果:

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式


模板中最关键的部分内容

1. 数据准备

此部分主要是读取原始数据并初始化绘图参数

复制代码
% 读取数据load data.mat% 初始化参数X = x;Y1 = dataset1;Y2 = dataset2;

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具中的XKCD配色库

复制代码
%% 颜色定义C1 = TheColor('xkcd',83);C2 = TheColor('xkcd',426);

3. 水平双向柱状图绘制

通过调用两次'barh'命令,绘制初始水平双向柱状图

复制代码
GO1 = barh(X,Y1,0.6,'EdgeColor','k','LineWidth',1);GO2 = barh(X,Y2,0.6,'EdgeColor','k','LineWidth',1);hTitle = title('Bidirectional barh chart');hXLabel = xlabel('Xaxis');hYLabel = ylabel('Yaxis');

4. 细节优化

为了插图的美观,将初始水平双向柱状图赋上之前选择的颜色 ,并对坐标轴细节等进行美化

复制代码
% 赋色GO1.FaceColor = C1;GO2.FaceColor = C2;% 基线调整BL = get(GO2,'BaseLine');BL.LineWidth = 1;% 坐标区调整set(gca, 'Box', 'off', ...                                         % 边框         'LineWidth', 1, 'GridLineStyle', '-',...                  % 坐标轴线宽         'XGrid', 'off', 'YGrid', 'off', ...                       % 网格         'TickDir', 'out', 'TickLength', [.01 .01], ...            % 刻度         'XMinorTick', 'off', 'YMinorTick', 'off', ...             % 小刻度         'XColor', [.1 .1 .1],  'YColor', [.1 .1 .1])              % 坐标轴颜色set(gca, 'YTick', 1:6,...         'Ylim' , [0.5 6.5], ...          'Yticklabel',{'A','B','C','D','E','F'},...         'XTick', -8000:4000:12000)% LegendhLegend = legend([GO1,GO2], ...                 'Income','Payout', ...                 'Location', 'northwest');% 字体和字号set(gca, 'FontName', 'Arial', 'FontSize', 10)set([hLegend,hXLabel,hYLabel], 'FontSize', 11, 'FontName', 'Arial')set(hTitle, 'FontSize', 12, 'FontWeight' , 'bold')% 背景颜色set(gcf,'Color',[1 1 1])% 添加上、右框线xc = get(gca,'XColor');yc = get(gca,'YColor');unit = get(gca,'units');ax = axes( 'Units', unit,...           'Position',get(gca,'Position'),...           'XAxisLocation','top',...           'YAxisLocation','right',...           'Color','none',...           'XColor',xc,...           'YColor',yc);set(ax, 'linewidth',1,...        'XTick', [],...        'YTick', []);

设置完毕后,以期刊所需分辨率、格式输出图片。

复制代码
%% 图片输出figW = figureWidth;figH = figureHeight;set(figureHandle,'PaperUnits',figureUnits);set(figureHandle,'PaperPosition',[0 0 figW figH]);fileout = 'test';print(figureHandle,[fileout,'.png'],'-r300','-dpng');

以上。

相关推荐
isyangli_blog5 小时前
OpenDayLight (Carbon 版本) 启动与组件安装
开发语言·php
vb2008115 小时前
FastAPI APIRouter
开发语言·python
Benszen5 小时前
KVM虚拟化解决方案
开发语言·perl
会编程的土豆5 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
東雪木5 小时前
多线程与并发编程 专属复习笔记
java·开发语言·笔记·java面试
杨充6 小时前
1.3 浮点型数据设计灵魂
开发语言·python·算法
噜噜噜阿鲁~6 小时前
python学习笔记 | 11.3、面向对象高级编程-多重继承
java·开发语言
basketball6166 小时前
Go 语言从入门到进阶:4. 数组和MAP使用方法总结
开发语言·后端·golang
春生野草6 小时前
反射、Tomcat执行
java·开发语言
雪的季节7 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt