日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【MATLAB基础绘图第7棒】绘制各式柱状图

發布時間:2024/3/13 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【MATLAB基础绘图第7棒】绘制各式柱状图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MATLAB繪制各式柱狀圖

  • 1 分組繪制柱狀圖
    • 1.1 案例1:常規分組柱狀圖
  • 2 繪制漸變柱狀圖
    • 2.1 案例
  • 3 繪制多組柱狀圖并修改文字顏色一致
    • 3.1 案例
  • 4 繪制雙軸-倒立柱狀圖
  • 5 繪制區間位置柱狀圖
  • 參考

1 分組繪制柱狀圖

1.1 案例1:常規分組柱狀圖

繪制分組數據,并對數據格式和邊框等進行設置,成圖如下所示:

MATLAB繪制代碼如下:

clc close all clear %% 導入數據 pathFigure= '.\Figures\' ; Name = ["生活","生態","工業","農業","匯總"]; xLables = ['Ⅰ' ; 'Ⅱ'; 'Ⅲ']; mycolor = [53,42,134;21,132,212;55,184,156;215,186,84;247,250,13]./255;x = [1 2 3]; XX = [0 0 0 3.92 2.78 0 0 0 6.63 4.2 0.78 8.37 9.98 22.15 15.46];figure(1); hold on; box on; h = bar( XX ,'FaceColor','flat'); for k = 1:size(XX,2)h(k).FaceColor = mycolor(k,:); end set(gca,'XTick', x , 'XTickLabel',xLables); set(gca,'FontSize',12,'Fontname', 'Times New Roman'); xlabel("情景",'FontName','宋體','FontSize',14,'Fontweight','bold'); % 后續調整坐標標題 ylabel("\fontname{宋體}\fontsize{15}缺水率(\fontname{Times New Roman}\fontsize{15}%\fontname{宋體}\fontsize{15})",'FontSize',14,'Fontweight','bold'); % 后續調整坐標標題 hl = legend( Name ); set(hl,'Box','off','location','NorthWest','NumColumns',1,'FontSize',12,'FontName','宋體'); ax1 = gca; ax1.FontSize = 12; ax1.LineWidth = 1; set(gca,'Layer','top');str= strcat(pathFigure, "Figure1", '.tiff'); print(gcf, '-dtiff', '-r600', str);

2 繪制漸變柱狀圖

看論文時,被這種圖深深吸引了,如果想要在MATLAB中繪制以下圖形,應當如何實現呢?

圖源:J2022-Observed decrease in light precipitation in part due to urbanization-Scientific Reports

2.1 案例

經過多方學習、嘗試后發現,MATLAB實現該過程實屬困難,但Origin可以實現,以如下案例為代表,簡要演示如何繪圖:
1、數據準備
將如下數據輸入Origin新建表格Book中,并將B設置為X2

adc ba 0.52 adc ab 0.25 adc ac 0.8 cda aa 0.33 cda bb 0.48 cda cc 0.53 bbc ca 0.15 bbc cb 0.66 bbc cd 0.88



then,分別將A、B兩列設置為列

2、繪制多因子柱狀圖
選中所有數據,點擊繪圖-多因子分組柱狀圖

在【數據列】部分選取C,在子組列部分選取both A and B,then 確定,便得到初步圖形



3、加工美化
(先刪除了圖例,太丑了,看見惡心),以adc組為例展示
按住ctrl后并點擊鼠標左鍵便可選中第一個柱子,雙擊進入編輯界面

做如下編輯


同理調整ab,ac兩根柱子,至此,adc柱狀圖顏色已調整好,然后添加誤差棒

選中圖形,然后點擊左上角插入-誤差棒,單擊圖中誤差棒便可調整顏色及粗細


finally,添加直線以區分組別,選中圖形,點擊插入-直線,填寫位置即可(可以隨便填寫然后拖動,也可以仔細確定-一步到位),然后單擊直線,調整寬度、顏色、形狀等
其他字體、柱子寬度、誤差棒數據選擇等可自行調整、十分簡單

3 繪制多組柱狀圖并修改文字顏色一致


圖源:J2022-Observed decrease in light precipitation in part due to urbanization-Scientific Reports

3.1 案例

4 繪制雙軸-倒立柱狀圖

成圖如下:

MATLAB代碼如下:

clc close all clear %% 導入數據 pathFigure= '.\Figures\' ;X = randn(40,1); Ymax = 50; Y = Ymax*randn(40,1);%% 開始繪圖 figure(1) hold on;box on;grid off; h(3) = area( X,'FaceColor', [0.5529,0.7137,0.8039] ,'LineStyle','none'); [AX,h(1),h(2)] = plotyy( 1:length(X), X, 1:length(X) , Y, 'plot','bar'); % 畫雙軸,AX(1)左軸,AX(2)右軸,H為曲線本身 set(AX(2),'YDir','reverse','Ylim',[0, Ymax*3 ],'YTick',[0:20:Ymax*2],'FontSize',12,'Fontname', 'Times New Roman'); % 設置右邊軸為倒立 set(gca,'box','off','Ytick',[]) set(AX(1),'YLim',[min(X)*1.5,1.5*max(X)],'YTick',[floor(min(X)*1.5):1:ceil(1.5*max(X)) ],'Fontsize',10,'YColor','k'); %設置坐標軸的標題 h(5) = plot( zeros( length(X) ,1) ,'k-','linewidth',0.75); set(get(AX(1),'Xlabel'),'String','XLabel','Fontname', 'Times New Roman'); set(get(AX(1),'Ylabel'),'String','YLabel1','Fontname', 'Times New Roman'); set(get(AX(2),'Ylabel'),'string','YLabel2','LineStyle','none','Fontname', 'Times New Roman'); set(gca,'Layer','top','FontSize',12,'Fontname', 'Times New Roman');str= strcat(pathFigure, "Figure 1", '.jpg'); print(gcf, '-djpeg', '-r600', str);

5 繪制區間位置柱狀圖

區間范圍柱狀圖是柱狀圖的一種,能夠更加清晰地展示各類目數據區間范圍分布的差異。支持通過獲取數據的最小值和最大值之間的范圍,展示不同類目下柱圖的數據樣式。 如下圖所示:

圖源:J2022-Amplification of non-stationary drought to heatwave duration and intensity in eastern China Spatiotemporal pattern and causes

參考

總結

以上是生活随笔為你收集整理的【MATLAB基础绘图第7棒】绘制各式柱状图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。