科研画图:散点连接并平滑(基于Matlab和Python)
时间:2019-11-03
本文章向大家介绍科研画图:散点连接并平滑(基于Matlab和Python),主要包括科研画图:散点连接并平滑(基于Matlab和Python)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
导师要求参照别人论文中的图(下图),将其论文中的图画美观些
附上自己整合验证过的代码:
功能:将散点连接并平滑
1)Matlab
效果图:
x1=[431.50032,759.5552,1335.3736,2530.388] %输入以下三组数据 y1=[34.06366,35.73132,37.2244,38.61294] x2=[263.8656,458.7952,839.6584,1740.9088] y2=[33.5318074,35.1415668,36.8603528,38.244926] x3=[253.91296,441.854,803.4116,1625.2548] y3=[34.3625,35.88912,37.5403,38.45364] a=linspace(min(x1),max(x1)); %插值后将散点连线平滑化 b=interp1(x1,y1,a,'cubic'); c=linspace(min(x2),max(x2)); d=interp1(x2,y2,c,'cubic'); e=linspace(min(x3),max(x3)); f=interp1(x3,y3,e,'cubic'); plot(a,b, 'LineWidth',2, 'LineSmoothing', 'on'); %画ab对应曲线,粗细,平滑 hold on plot(c,d, 'LineWidth',2, 'LineSmoothing', 'on'); %画cd对应曲线,粗细,平滑 hold on plot(e,f, 'LineWidth',2, 'LineSmoothing', 'on'); %画ef对应曲线,粗细,平滑 axis([0,3000,33,39]) %确定x轴与y轴框图大小 legend({'MRMV','MVDM','MVLL'},'FontSize',13,'Location','southeast','Orientation','vertical') %题注设置:名称,字号,位置,方向 xlabel('Bit rates(kbps)','FontSize',13,'FontWeight','bold') %x轴设置:标题,字号,字体粗细 ylabel('PSNR(dB)','FontSize',13,'FontWeight','bold') %y轴设置:名称,字号,字体粗细 title('Balloons','FontSize',15,'FontWeight','bold') %标题描述,名称,字号,字体粗细 set(gca,'ygrid','on','gridlinestyle','--','Gridalpha',0.3) %网格设置 grid on; %网格 print(gcf, '-dpng', '-r800', 'C:\Users\Administrator\Desktop\test.png') %保存图片,格式为png,分辨率800,保存路径
2)Python
小问题:翘尾问题需要解决
# author: Kobay time:2019/10/18 import matplotlib.pyplot as plt import numpy as np from scipy.interpolate import spline x1 = np.array([431.50032,759.5552,1335.3736,2530.388]) y1 = np.array([34.06366,35.73132,37.2244,38.61294]) x2 = np.array([263.8656,458.7952,839.6584,1740.9088]) y2 = np.array([33.5318074,35.1415668,36.8603528,38.244926]) x3 = np.array([253.91296,441.854,803.4116,1625.2548]) y3 = np.array([34.3625,35.88912,37.5403,38.45364]) x1_new = np.linspace(x1.min(), x1.max()) # 300 represents number of points to make between T.min and T.max y1_smooth = spline(x1, y1, x1_new) x2_new = np.linspace(x2.min(), x2.max(), 3000) # 300 represents number of points to make between T.min and T.max y2_smooth = spline(x2, y2, x2_new) x3_new = np.linspace(x3.min(), x3.max(), 3000) # 300 represents number of points to make between T.min and T.max y3_smooth = spline(x3, y3, x3_new) # 散点图 plt.scatter(x1, y1, c='black', alpha=0.5) # alpha:透明度) c:颜色 # 折线图 plt.plot(x1, y1, linewidth=1) # 线宽linewidth=1matl # 平滑后的折线图 plt.plot(x1_new, y1_smooth, c='blue',label='MRMV') plt.plot(x2_new, y2_smooth, c='orange',label='MVDM') plt.plot(x3_new, y3_smooth, c='gray',label='MVLL') # 解决中文显示问题 # plt.rcParams['font.sans-serif'] = ['SimHei'] # SimHei黑体 # plt.rcParams['axes.unicode_minus'] = False plt.title("Balloons", fontdict={'family' : 'Calibri', 'size': 16,'weight':'bold'}) # 标题及字号 plt.xlabel("Bit rates(kbps)", fontdict={'family' : 'Calibri', 'size': 14,'weight':'bold'}) # X轴标题及字号 plt.ylabel("PSNR(dB)", fontdict={'family' : 'Calibri', 'size': 14,'weight':'bold'}) # Y轴标题及字号 plt.tick_params(axis='both', labelsize=14) # 刻度大小 plt.axis([0, 3000, 33, 39])#设置坐标轴的取值范围 plt.grid(linestyle='-.') plt.legend(loc=4) plt.show() # plt.save('squares_plot.png'(文件名), bbox_inches='tight'(将图表多余的空白部分剪掉)) # 用它替换plt.show实现自动保存图表
原文地址:https://www.cnblogs.com/Kobaayyy/p/11788002.html
- 【视频讲解】-使用rmarkdown来制作html报表
- 为什么要学习编程?
- 楼盘价格数据采集与可视化分析
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- 深入理解Linux磁盘的奥秘
- Linux文件系统——全方位掌握
- TensorFlow和深度学习入门教程
- php+mysql实现分页代码
- 主成分分析降维(MNIST数据集)
- Android 使用dagger2进行依赖注入(基础篇)
- Html小知识总结
- 如何训练一个性能不错的深度神经网络
- 使用AndroidStudio编译NDK的方法及错误解决方案
- 计算机视觉 | Python OpenCV 3 使用背景减除进行目标检测
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 在Linux中如何轻松删除源安装的软件包
- linux系统 java环境变量的配置方法
- Apache 文件上传与文件下载案例详解
- 前端CLI脚手架思路解析并从0到1搭建
- Linux中搭建完整的samba服务器全攻略(centos版)
- Linux 命令行通配符及转义符的实现
- Linux采用双网卡bond、起子接口的方式
- 在Linux分区或逻辑卷中创建文件系统的方法
- Linux下通过sed命令对kv方式的配置文件进行修改
- Linux中将txt导入到mysql的方法教程
- LNMP部署及HTTPS服务开启教程
- 在 Linux 上锁定虚拟控制台会话的实现方法
- Linux中split大文件分割和cat合并文件详解
- centos下安装配置phpMyAdmin的方法步骤
- ubuntu中python调用C/C++方法之动态链接库详解