Matlab进阶绘图第26期—双向堆叠图

双向堆叠图 是一种特殊的堆叠图,其通过在两个方向构建堆叠图,从而可以对两种类别的同名及综合属性进行全方位的比较

由于Matlab中未收录双向堆叠图的绘制函数,因此需要大家自行设法解决。

本文分享一个简单的双向堆叠图的绘制方法,先来看一下成品效果:

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


1. 数据准备

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

复制代码
% 读取数据load data.mat% 初始化绘图参数x = X;y1 = A1;y2 = A2;

2. 颜色定义

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

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

这里直接使用TheColor配色工具中的SCI权威配色库

复制代码
%% 颜色定义C = TheColor('sci',2062,'map',6);% C = flipud(C);

3. 双向堆叠图绘制

通过调用两次'bar'命令,绘制初始双向堆叠图

复制代码
GO1 = bar(x,y1,0.9,'stacked','EdgeColor','none');GO2 = bar(x,y2,0.9,'stacked','EdgeColor','none');hTitle = title('Stacked bidirectional bar chart');hXLabel = xlabel('Xaxis');hYLabel = ylabel('Yaxis');

4. 细节优化

为了插图的美观,将初始双向堆叠图赋上之前选择的颜色

复制代码
% 赋色for i = 1:6    GO1(i).FaceColor = C(i,1:3);    GO2(i).FaceColor = C(i,1:3);end

进一步,对坐标轴细节等进行一点点美化。

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

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

以上。

相关推荐
嵌入式-老费6 分钟前
Easyx图形库应用(和lua结合使用)
开发语言·lua
AsiaLYF7 分钟前
kotlin中MutableStateFlow和MutableSharedFlow的区别是什么?
android·开发语言·kotlin
Asuncion00718 分钟前
Docker核心揭秘:轻量级虚拟化的革命
服务器·开发语言·docker·云原生
深思慎考1 小时前
RabbitMQ 入门:基于 AMQP-CPP 的 C++ 实践指南与二次封装
开发语言·c++·分布式·rabbitmq·api
catchadmin1 小时前
PHP8.5 的新 URI 扩展
开发语言·后端·php
似水流年 光阴已逝1 小时前
从Excel姓名匹配案例学Python:由点及面的系统化学习指南
开发语言·python·excel
重生之我要当java大帝1 小时前
java微服务-尚医通-管理平台前端搭建-医院设置管理-4
java·开发语言·前端
Q_Q19632884752 小时前
python+vue的在线租房 房屋租赁系统
开发语言·vue.js·spring boot·python·django·flask·node.js
东巴图2 小时前
分解如何利用c++修复小程序的BUG
开发语言·c++·bug
祁同伟.2 小时前
【C++】二叉搜索树(图码详解)
开发语言·数据结构·c++·容器·stl