Matlab 绘制不同颜色柱形图 添加文字 并保存为pdf格式(减少空白边界)

您所在的位置:网站首页 为什么柱状图只能显示2组 Matlab 绘制不同颜色柱形图 添加文字 并保存为pdf格式(减少空白边界)

Matlab 绘制不同颜色柱形图 添加文字 并保存为pdf格式(减少空白边界)

2024-03-23 16:35| 来源: 网络整理| 查看: 265

问题

在论文中插图时,一般要求是pdf或eps格式, 对于算法的对比,我们可以用柱形图显示。本文记录Matlab绘制不同颜色柱形图并导出为pdf格式的图片。

2. 代码

%data: 4组,每组5个数据 y=[0.34 0.32 0.34 0.47 0.51; 0.44 0.50 0.53 0.56 0.61; 0.62 0.52 0.56 0.92 0.94; 0.46 0.44 0.47 0.65 0.68; ]; x=[1 2 3 4]; %对应4组 t1=y(:,1); t2=y(:,2); t3=y(:,3); t4=y(:,4); t5=y(:,5); t=[t1;t2;t3:t4:t5]; %plot bar c=bar(x2,y); set(c(1,1),'FaceColor','m','BarWidth',0.9);% c(1,1) 就是设置第一组的第一个数据柱 set(c(1,2),'FaceColor','Y','BarWidth',0.9);% c(1,2) 设置第二个 set(c(1,3),'FaceColor','R','BarWidth',0.9);%‘FaceColor’ 设置柱的颜色 set(c(1,4),'FaceColor','G','BarWidth',0.9);%‘BarWidth’ 设置柱的宽度 set(c(1,5),'FaceColor','B','BarWidth',0.9);% 对于单个柱,设置c(1),c(2),c(3),...即可 % 在每个柱顶部添加相应的数字 for i = 1:4 text(x(i)-0.3,t1(i),num2str(t1(i)),... 'HorizontalAlignment','center',... 'VerticalAlignment','bottom','FontSize',15) %0.3可以调整相邻柱之间的间隔,手动调节 text(x(i)-0.15,t2(i),num2str(t2(i)),... 'HorizontalAlignment','center',... 'VerticalAlignment','bottom','FontSize',15) %‘FontSize’设置文字大小 text(x(i),t3(i),num2str(t3(i)),... 'HorizontalAlignment','center',... 'VerticalAlignment','bottom','FontSize',15) text(x(i)+0.15,t4(i),num2str(t4(i)),... 'HorizontalAlignment','center',... 'VerticalAlignment','bottom','FontSize',15) text(x(i)+0.3,t5(i),num2str(t5(i)),... 'HorizontalAlignment','center',... 'VerticalAlignment','bottom','FontSize',15) end %设置 x y轴刻度标签 set(gca,'XTickLabel',{'D1','D2','D3','All'},'FontSize',10); set(gca,'YTicklabel',{'0','0.2','0.4','0.6','0.8','1'}); %设置 y轴刻度 set(gca,'YTick',0:0.2:1); %给 x y轴加名字 xlabel('Dataset','FontSize',15) ylabel('Accuracy','FontSize',15); %不同算法图例 legend('A','B','C','D','Ours','location','northwest');%'location' 控制图例放置位置 %将结果图像保存为PDF格式 set(gcf,'Units','Inches'); pos = get(gcf,'Position'); set(gcf,'PaperPositionMode','Auto','PaperUnits','Inches','PaperSize',[pos(3), pos(4)]); filename='result';%只需改动名字 print(gcf,filename,'-dpdf','-r0') close(gcf); %若保存的PDF有较多空白边缘,则修改纸的大小如下 fig=gcf; fig.PaperPositionMode = 'auto'; fig_pos = fig.PaperPosition; fig.PaperSize = [fig_pos(3)-5 fig_pos(4)-4];%PaperSize: WxH 可以调节纸大小,进而修改空白边 filename='result'; print(gcf,filename,'-dpdf','-r0');

运行结果:

 

3.参考文献

https://blog.csdn.net/saro21/article/details/37964649

https://blog.csdn.net/fsfsfsdfsdfdr/article/details/83658850

https://blog.csdn.net/huangzhywin/article/details/89240056



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3