率失真曲线图-科研画图改进:散点连接成曲线并画出原散点的标记点

之前有做过一些画科研曲线图的工作,具体见:科研画图:散点连接并平滑(基于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绘图-用曲线连接散点方法
码字不易,如果您觉得有帮助,麻烦帮我点个赞~~

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