• 附上自己整合验证过的代码：功能：将散点连接平滑1)Matlab效果图：x1=[431.50032,759.5552,1335.3736,2530.388] %输入以下三组数据y1=[34.06366,35.73132,37.2244,38.61294]x2=[263.8656,458.7...

导师要求参照别人论文中的图(下图)，将其论文中的图画美观些，网上关于科研画图相关的代码比较少，就自己鼓捣了下。

附上自己整合验证过的代码：
功能：将散点连接并平滑
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; %网格
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实现自动保存图表
码字不易，如果您觉得有帮助，麻烦点个赞再走呗~
基于MATLAB的腐蚀膨胀算法实现
本篇文章要分享的是基于MATLAB的腐蚀膨胀算法实现,腐蚀膨胀是形态学图像处理的基础,腐蚀在二值图像的基础上做“收缩”或“细化”操作,膨胀在二值图像的基础上做“加长”或“变粗”的操作. 什么是二值图像 ...
基于MATLAB边缘检测算子的实现
基于MATLAB边缘检测算子的实现 作者:lee神 1.   概述 边缘检测是图像处理和计算机视觉中的基本问题,边缘检测的目的是标识数字图像中亮度变化明显的点.图像属性中的显著变化通常反映了属性的重要 ...
基于MATLAB的中值滤波均值滤波以及高斯滤波的实现
基于MATLAB的中值滤波均值滤波以及高斯滤波的实现 作者:lee神 1.   背景知识 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值. 中值滤 ...
&lbrack;ZZ&rsqb; 基于Matlab的标记分水岭分割算法
基于Matlab的标记分水岭分割算法 http://blog.sina.com.cn/s/blog_725866260100rz7x.html 1 综述 Separating touching obj ...
基于MATLAB的多项式数据拟合方法研究-毕业论文
摘要:本论文先介绍了多项式数据拟合的相关背景,以及对整个课题做了一个完整的认识.接下来对拟合模型,多项式数学原理进行了详细的讲解,通过对文献的阅读以及自己的知识积累对原理有了一个系统的认识.介绍多项式 ...
DIY一个基于树莓派和Python的无人机视觉跟踪系统
DIY一个基于树莓派和Python的无人机视觉跟踪系统 无人机通过图传将航拍到的图像存储并实时传送回地面站差点儿已经是标配.假设想来点高级的--在无人机上直接处理拍摄的图像并实现自己主动控制要怎么实现 ...
基于Appium、Python的自动化测试
基于Appium.Python的自动化测试环境部署和实践   第一章 导言 1.1 编制目的 该文档为选用Appium作为移动设备原生(Native).混合(Hybrid).移动Web(Mobile ...
基于MATLAB的离散小波变换
申明,本文非笔者原创,原文转载自:  基于Matlab的离散小波变换         http://blog.sina.com.cn/s/blog_725866260100ryh3.html 简介 在 ...
随机推荐
Javascript中数组的基本操作
删除数组指定的某个元素 via首先可以给JS的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即索引,代码为: Array.prototype.indexOf = function(val) ...
【9-7】XML学习笔记01
Tips XML标签大小写敏感: XML文件一般使用国际化通用的编码“utf-8”,所以平时看到的XML文件的头部都会有这样的代码: <?xml version="1.0" ...
计算字符串中al&lowbar;num&comma;spance&lowbar;num&comma;digit&lowbar;num&comma;other&lowbar;num的个数
def jisuan(x) : al_num = 0 spance_num = 0 digit_num = 0 other_num = 0 for i in x : if i.isdigit() : ...
如何在目录中查找具有指定字符串的文件(shell)
find /tmp/ -name test.txt | xargs grep "hello" 可以查找到tmp目录下文件名test.txt并包含字符串hello的文件.
GitHub 基本常用知识解答2
1.如何拥有一个Git仓库的两种途径 (1)在已有的目录中,初始化一个新的. (2) 比如一个新的项目,或者一个已存在的项目,但该项目尚未有版本控制.如果你想要复制一份别人的项目, 或者与别人合作某个 ...
telnet localhost 8089 &equals;&equals;》》命令使用
GET /ccc/abc.html HTTP/1.1 host:localhost     客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式, HTTP协议用于定 ...
Android 非Activity类引用getResources&lpar;&rpar;方法问题的解决方法
在进行Android开发的过程中,在一个非Activity类(此处假设类名为MyNewClass)中引用了getResources()方法,如下: Bitmap bmp = BitmapFactory ...
UVA 725 – Division
Description   Write a program that finds and displays all pairs of 5-digit numbers that between them ...
android在单身的对象和一些数据的问题被释放
正式接触android我们一直在开发了一段时间,该项目的第一个版本最终会很快结束. 当有它自己的测试.拥有android后台.同一时候打开了几个应用之后又一次切回到自己的app.发现报错了.经过排查, ...
Java课程设计 学生基本信息管理系统 团队博客
学生基本信息管理系统团队博客 项目git地址 https://git.oschina.net/Java_goddess/kechengsheji 项目git提交记录截图 项目功能架构图与主要功能流程图 ...

展开全文
• 关键词 smooth 还有其他的值 当type为line时 smooth 表示 是否平滑曲线显示。 如果是 boolean 类型，则表示是否开启平滑处理。如果是 number 类型（取值范围 0 到 1），表示平滑程度，越小表示越接近折线段，反之则...
只需要在series中添加 smooth: true
完整示例代码
option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [{
data: [820, 932, 901, 934, 1290, 1330, 1320],
type: 'line',
smooth: true
}]
};


关键词 smooth 还有其他的值
当type为line时 smooth 表示 是否平滑曲线显示。
如果是 boolean 类型，则表示是否开启平滑处理。如果是 number 类型（取值范围 0 到 1），表示平滑程度，越小表示越接近折线段，反之则反。设为 true 时相当于设为 0.5。
如果需要修改平滑算法，请参考 smoothMonotone。
设置为1 
展开全文
• 我们现在想要做的是使用光滑曲线来连接多边形的顶点，这时候我们就可以用到Will的 hobbysplines 这个程序。它可以使用贝赛尔曲线来连接一些点。这个函数效果不错，不过需要额外添加一些控制点来调节贝赛尔曲线的...

有时候，我们需要找到一个好办法来描出目标的轮廓，我们希望可以在matlab里用光滑曲线来勾画物体。在matlab的 Image Processing
有时候，我们需要找到一个好办法来描出目标的轮廓，我们希望可以在matlab里用光滑曲线来勾画物体。在matlab的 Image Processing Toolbox中，有一些交互式的工具用来画线。不过，使用 imfreehand 之类的函数做这件事并不容易，，因为我们很难用鼠标精确的画图。除非我们去买一个手写版，至少很多人都没有这个设备。

impoly 这个函数可以让我们更好的在目标边界上选择点，然后它可以构建一个多边形来逼近这个目标。不过，如果我们要光滑拟合，就需要选非常多的点才行。

我们现在想要做的是使用光滑曲线来连接多边形的顶点，这时候我们就可以用到Will的 hobbysplines 这个程序。它可以使用贝赛尔曲线来连接一些点。这个函数效果不错，不过需要额外添加一些控制点来调节贝赛尔曲线的形状。而且在终点的时候，难以做到光滑的闭合。
通过添加23个控制点，我们可以光滑逼近一个不规则形状。如果有需求，这个函数还是值得一试。


展开全文
• -1, 0, 1, 0]) times = np.array([0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10]) # 这个就是最重要的平滑操作了，要是不使用这个操作的话，画出来的就是点和点之间的直线 ...
前言：
由于写论文需要测试算法的效率，所以需要使用某画图工具来将算法（分布式共识算法）的效率体现出来，本人一开始想到的是使用MATLAB，然后先不说其安装有多麻烦，仅仅是大小，我这个苏菲婆就顶不住了，然后问了问师姐，师姐：Python。嗯。
用需要用到三个库： • numpy • matplotlib • scipy 具体的作用就不介绍了，懂得都懂，但是安装只要安装后面两个就好了，matplotlib包含numpy
安装：
因为本人使用的是conda环境，所以在安装前先将一些东西升级
conda update conda
conda update anaconda
conda update anaconda-navigator    //update最新版本的anaconda-navigator

然后进入已经创建的环境，再安装matplotlib：
conda install matplotlib
conda install scipy

安装完成后开始测试（也可以省略这个步骤，我这段代码已经没了…或者你可以直接跑下面的代码，一样的）：
说明你的一切都已经就绪了，剩下的就只要按照自己的需求画出对应的图即可。
代码：
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import make_interp_spline

# 两个是配置代码，第一行表示，允许使用中文，第二个表示允许使用负数
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 这三个表示就跟名字一样，标识作用
plt.title("Four Nodes State")
plt.xlabel("Time(sec)")
plt.ylabel("State xi i=0,1,...4")

# 这个前两参数表示横坐标的开始和结尾，第三个参数表示你要分成多少份
x = np.linspace(0, 10, 1000)

# 下面是节点个状态信息，一定要使用numpy自带的array，不然会出错
node1State = np.array([-4, -3, -2, -1, 0, 1, 2, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0])
times = np.array([0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10])

# 这个就是最重要的平滑操作了，要是不使用这个操作的话，画出来的就是点和点之间的直线
model0 = make_interp_spline(times, node1State)
ys0 = model0(x)

# 给每条线设定颜色，和添加label，linestyle表示你要使用曲线的样式，有多少种网上有
plt.plot(x, ys0, color='red', label='Node 0', linestyle='-.')

# legend() 函数只有在你需要使用laber 这个参数的时候才会用到
plt.legend()
plt.show()

上述代码跑出来图如下：
问题：
至于节点数据的问题，我这里就是使用现成的数据，因为本人是使用golang来跑算法的，但是golang画图的库真的能让人哭出来，所以就直接跑算法的时候将相关数据存取来，然后在导入到Python这边。 其他问题，实力有限，确实爱莫能助。
参考：
https://www.delftstack.com/zh/howto/matplotlib/matplotlib-plot-smooth-curve/ https://blog.csdn.net/TeFuirnever/article/details/88944438 https://blog.csdn.net/weixin_40683253/article/details/87367437 https://www.runoob.com/numpy/numpy-matplotlib.html https://blog.csdn.net/cdqn10086/article/details/70143616
展开全文
• 如果你还不会处理Origin平滑曲线的情况的话，就来下文学习学习Origin平滑曲线的处理方法步骤吧，希望可以帮助到大家。Origin平滑曲线的使用方法打开Origin软件，导入自己需要的数据后，选中需生成曲线的两列数据，如...
• 如果要对当前的Nginx服务器进行版本升级，应用新模块，如果用户访问量比较大的时候，如果需要在不影响客户的情况下进行升级的话，这时候就得考虑平滑升级了。平滑升级的过程，Nginx服务器接受到USR2信号后，首先将旧...
• I am reading a netcdf file using python and need to plot a graphs using matplotlib library in python.The netcdf file is containing 3 variables: u v and w components.I have to draw these 3 components o...
• 1、概述(可以直接跳过看第2部分)Nginx方便...(4)老进程处理完所有请求，关闭所有连接后，停止。这样就很方便地实现了平滑升级。一般有两种情况下需要升级Nginx，一种是确实要升级Nginx的版本，另一种是要为Nginx添加...
• Nginx的平滑重启如果改变了Nginx的配置文件(nginx.conf)，想重启Nginx，可以发送系统信号给Nginx主进程的方式来进行。不过，在重启之前，要确认Nginx配置文件的语法是正确的，可通过如下命令测试配置文件是否正确：/...
• ## 软件平滑升级

千次阅读 2021-10-24 18:55:41
平滑升级是什么？ 是一种在热升级手段，在不中断服务的情况下升级软件。 为什么平滑升级呢？ 因为现在软件版本功能已经无法满足上产需求，所以需要升级新的版本，来提供更好的服务。 平滑升级是则么做到的？ 用新的...
• 我尝试过在Python中平滑折线图的方法，这不难通过插值来实现，例如，使用这些数据集，我可以生成这个图表。在x = np.linspace(0, 6, num=7)、A = [3, 4, 5, 3.5, 4.7, 5, 3.6]和{}虽然我不太喜欢所取得的效果，但...
• 目的：通过SPI从硬件上采集数据点，然后通过这些点绘制平滑的曲线，最后可以...但是用最小二乘法拟合曲线的时候出现了点问题，拟合后还是和我直接用Moveto,lineto连接的一样效果，并没有变呈平滑的曲线！是什么原...
• document.getElementById('info').scrollIntoView({ block: 'start', behavior: 'smooth' })
• 栅格数据获取的途径多种多样，造成了栅格数据质量的很大差异，一些质量较差...在ArcGIS软件的空间分析工具箱中，提供了大量的栅格数据处理工具，其中对栅格数据进行平滑处理的工具在去除图像上的椒盐噪音的处理中有...
• 目的通过平滑处理，我们可以发现数据中的重要模式，同时忽略不重要的内容(如噪声)。我们使用滤波来执行这种平滑处理。平滑处理的目标是呈现值的缓慢变化情况，以便更容易看到数据的趋势。有时，当您检查输入数据时，...
• 您的算法允许整个图像(保存为一个像素)为“轮廓”.我不确定这究竟是你想要的;通常轮廓是两个不同区域之间的边界.您的方法的问题是您可以获得没有...这将使轮廓平滑. (或者,您可以先找到轮廓,然后使用移动窗口平均坐标.)
• 06-23 0.023261 0.010579 0.001560 0.281462 2013-06-30 0.017443 0.007933 0.001170 0.211057 2013-07-07 0.013080 0.005949 0.000877 0.408376 要将此结果与df2连接起来： df3 = df2.ewm(span=7).mean() df3....
• 一、概要：使用Canny边缘检测算法作为例子，介绍图像的平滑方法和边缘检测。Canny边缘检测算法分为四步：step1:用高斯...step4:用双阈值算法检测和连接边缘。demo&效果：原图(lenna.bmp): 高斯滤波后的图像: ...
• 基于ArcGIS对栅格图像进行平滑处理栅格数据获取的途径多种多样，造成了栅格数据质量的很大差异，一些质量较差的栅格数据存在大量“噪音”象元，即在表达同类型的地理要素时，出现个别像元值与周边像元不一致的情况，...
• 我们看下gif: 画板 细心的同学可能发现，画的线折线感比较强，出现这个本质的原因—— 「就是我们画出的线其实是一个多段线polyline， 连接两个点之间的线是直线」 如何画出平滑的曲线 想起曲线，就不得不提到贝塞尔...
• 试调用smoothts函数对日收盘价数据进行平滑处理 绘制日收盘价曲线图：% 从文件examp7_1_2.xls中读取数据 >> x = xlsread('examp7_1_2.xls'); >> price = x(:,4)'; % 提取矩阵x的第4列数据，即收盘价数据 >> figure; ...
• 图像平滑的目的模糊：在提取较大目标前，去除太小细节，或将目标内的小间断连接起来。消除噪声：改善图像质量，降低干扰。平滑处滤波对图像的低频分量增强，同时削弱高频分量，用于消除图像中的随机噪声，起到平滑...
• 问题分析 出现该现象的原因主要是： 我们是以canvas的lineTo方法连接点的，连接相邻两点的是条直线，非曲线，因此通过这种方式绘制出来的是条折线； 受限于浏览器对mousemove事件的采集频率，大家都知道在mousemove...
• 套接口发送缓冲区中可用空间的字节数大于等于套接口发送缓冲区低潮限度的当前值，且或者（i)套接口已连接，或者（ii）套接口不需要连接（例如UDP套接字）。这意味着，如果我们将这样的套接口设置为非阻塞，写操作将...
• 很多时候，我们都需要通过绘制一些折线，然后让计算机平滑连接起来， 先来看下最终效果(红色为我们输入的直线，蓝色为拟合过后的曲线) 首尾可以特殊处理让图形看起来更好：） 实现思路是利用贝塞尔曲线进行拟合 ...

...