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

以上。

相关推荐
梦里小白龙23 分钟前
java 通过Minio上传文件
java·开发语言
m0_5613596727 分钟前
基于C++的机器学习库开发
开发语言·c++·算法
星空露珠34 分钟前
速算24点所有题库公式
开发语言·数据库·算法·游戏·lua
2401_8324027535 分钟前
C++中的类型擦除技术
开发语言·c++·算法
努力学习的小廉43 分钟前
我爱学算法之—— 递归回溯综合(二)
开发语言·算法
sheji52611 小时前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
2301_763472461 小时前
C++网络编程(Boost.Asio)
开发语言·c++·算法
毕设源码-邱学长1 小时前
【开题答辩全过程】以 基于Java Web的电子商务网站的用户行为分析与个性化推荐系统为例,包含答辩的问题和答案
java·开发语言
程序员清洒1 小时前
Flutter for OpenHarmony:Text — 文本显示与样式控制
开发语言·javascript·flutter
摇滚侠1 小时前
Java项目教程《尚庭公寓》java项目从开发到部署,技术储备,MybatisPlus、MybatisX
java·开发语言