率失真曲線圖-科研畫圖改進:散點連接成曲線並畫出原散點的標記點

之前有做過一些畫科研曲線圖的工作,具體見:科研畫圖:散點連接並平滑(基於Matlab和Python)
現在又要求我在原來的基礎上參考人家論文在率失真曲線圖上做一些改進,參考圖見下方:
在這裏插入圖片描述

在這裏插入圖片描述
所以基於科研畫圖:散點連接並平滑(基於Matlab和Python),我還需要在圖上畫一些標記點,最後改進的MATLAB代碼如下:

clear all;
clc;
x1=[148.2269236 83.99538909 79.39926546 6.996319999] %輸入以下兩組數據
y1=[46.159674 43.72373188 42.08405125 39.57959438]
x2=[171.83568 97.47963636 92.18746182 9.043141819]
y2=[46.36827538 43.85623025 42.237969 39.649203]
a=linspace(min(x1),max(x1)); %插值後將散點連線平滑化
b=interp1(x1,y1,a,'cubic');
c=linspace(min(x2),max(x2));
d=interp1(x2,y2,c,'cubic');
%標記點選取還需改進,現在的方法太麻煩
plot(a,b,'Color',[0 0.4470 0.7410],'Marker','o','MarkerFaceColor',[0 0.4470 0.7410],'LineWidth',2,'MarkerIndices',[1 52 55 100])%畫ab對應曲線,顏色,標記類型,標記填充顏色,粗細,選取的標記點
hold on
plot(c,d,'Color',[0.8500 0.3250 0.0980],'Marker','^','MarkerFaceColor',[0.8500 0.3250 0.0980],'LineWidth',2,'MarkerIndices',[1 52 55 100])%畫cd對應曲線,顏色,標記類型,標記填充顏色,粗細,選取的標記點
legend({'SCP','OMAF'},'FontSize',13,'Location','southeast','Orientation','vertical') %題注設置:名稱,字號,位置,方向
xlabel('Bit rates(kbps)','FontSize',13,'FontWeight','bold') %x軸設置:標題,字號,字體粗細
ylabel('PSNR(dB)','FontSize',13,'FontWeight','bold') %y軸設置:名稱,字號,字體粗細
title('AerialCity','FontSize',15,'FontWeight','bold') %標題描述,名稱,字號,字體粗細
set(gca,'ygrid','on','gridlinestyle','--','Gridalpha',0.3) %網格設置
grid on; %網格

生成的圖效果如下:
在這裏插入圖片描述
圖是按照參考樣式畫出來了,但是標記點選取那邊還需要做進一步改進。
需要注意的一點就是,MarkerIndices(在特定的數據點顯示標記)功能在Matlab2016b之前是沒有的,建議使用Matlab2016b以後的版本,博主用的是Matlab2018b。
參考:
[1] 科研畫圖:散點連接並平滑(基於Matlab和Python)
[2] plot 二維線圖
[3] Matlab Plot畫圖時設置marker實心並且和線條一樣顏色的方法
[4] Matlab中plot繪圖-用曲線連接散點方法
碼字不易,如果您覺得有幫助,麻煩幫我點個贊~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章