使用Matlab画条形图
2020-08-27 本文已影响0人
荔枝猪
得到如下图的条形图
条形图处理代码
% By Yang,2020/7/30
clear
dz = 'D:\GPP\tem_opt\result\tem_opt_min\raster\tem_opt_f.tif';% 数据地址
tem_opt = double(importdata(dz)); % 读取tif文件,并转换为doule类型
tem_opt(tem_opt == -9999) = NaN; % 非正常值设为NaN
num(1,1) = numel(find(tem_opt<5)); % 第一个柱子的数据
num(2,1) = numel(find(tem_opt>=5 & tem_opt<10));
num(3,1) = numel(find(tem_opt>=10 & tem_opt<15));
num(4,1) = numel(find(tem_opt>=15 & tem_opt<20));
num(5,1) = numel(find(tem_opt>=20 & tem_opt<25));
num(6,1) = numel(find(tem_opt>=25 & tem_opt<30));
num(7,1) = numel(find(tem_opt>=30)); % 第七个柱子的数据
num_all = sum(num); % 非NaN值像元总数
num_p = num/num_all*100; % 每个柱子所占总数的百分比
% 画条形图
pic = bar(num_p,'LineWidth',1.2); % LineWidth 线宽
% 设置不同条形柱子的颜色
pic.FaceColor = 'flat';
pic.CData(1,:) = [40/255,146/255,199/255]; % 普通RGB值除以255,得到的数字就是在MATLAB中颜色的值
pic.CData(2,:) = [129/255,179/255,171/255];
pic.CData(3,:) = [191/255,212/255,138/255];
pic.CData(4,:) = [250/255,250/255,100/255];
pic.CData(5,:) = [252/255,179/255,68/255];
pic.CData(6,:) = [247/255,110/255,42/255];
pic.CData(7,:) = [232/255,21/255,21/255];
hold on
ylabel('Percentage (%)','Fontname', 'Times New Roman','fontsize',24,'FontWeight','bold'); % 设置y轴标签字体
set(gca, 'Fontname', 'Times New Roman','FontSize',16,'FontWeight','bold'); % 设置刻度字体
set(gca,'tickdir','out'); % 刻度线向外
set(gca,'xtick',[]); % X轴坐标取消
set(gca,'linewidth',1.4); % 坐标轴线宽
box off % 取消上右边框
最终效果
效果图缩小放到空间图里