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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

matlab散点光滑连线,科研画图:散点连接并平滑(基于Matlab和Python)

發(fā)布時間:2025/3/15 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab散点光滑连线,科研画图:散点连接并平滑(基于Matlab和Python) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

導(dǎo)師要求參照別人論文中的圖(下圖),將其論文中的圖畫美觀些

附上自己整合驗證過的代碼:

功能:將散點連接并平滑

1)Matlab

效果圖:

x1=[431.50032,759.5552,1335.3736,2530.388] %輸入以下三組數(shù)據(jù)

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對應(yīng)曲線,粗細(xì),平滑

hold on

plot(c,d, 'LineWidth',2, 'LineSmoothing', 'on'); %畫cd對應(yīng)曲線,粗細(xì),平滑

hold on

plot(e,f, 'LineWidth',2, 'LineSmoothing', 'on'); %畫ef對應(yīng)曲線,粗細(xì),平滑

axis([0,3000,33,39]) %確定x軸與y軸框圖大小

legend({'MRMV','MVDM','MVLL'},'FontSize',13,'Location','southeast','Orientation','vertical') %題注設(shè)置:名稱,字號,位置,方向

xlabel('Bit rates(kbps)','FontSize',13,'FontWeight','bold') %x軸設(shè)置:標(biāo)題,字號,字體粗細(xì)

ylabel('PSNR(dB)','FontSize',13,'FontWeight','bold') %y軸設(shè)置:名稱,字號,字體粗細(xì)

title('Balloons','FontSize',15,'FontWeight','bold') %標(biāo)題描述,名稱,字號,字體粗細(xì)

set(gca,'ygrid','on','gridlinestyle','--','Gridalpha',0.3) %網(wǎng)格設(shè)置

grid on; %網(wǎng)格

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'}) # 標(biāo)題及字號

plt.xlabel("Bit rates(kbps)", fontdict={'family' : 'Calibri', 'size': 14,'weight':'bold'}) # X軸標(biāo)題及字號

plt.ylabel("PSNR(dB)", fontdict={'family' : 'Calibri', 'size': 14,'weight':'bold'}) # Y軸標(biāo)題及字號

plt.tick_params(axis='both', labelsize=14) # 刻度大小

plt.axis([0, 3000, 33, 39])#設(shè)置坐標(biāo)軸的取值范圍

plt.grid(linestyle='-.')

plt.legend(loc=4)

plt.show()

# plt.save('squares_plot.png'(文件名), bbox_inches='tight'(將圖表多余的空白部分剪掉))

# 用它替換plt.show實現(xiàn)自動保存圖表

標(biāo)簽:plt,min,Python,np,散點,Matlab,x2,x3,x1

來源: https://www.cnblogs.com/Kobaayyy/p/11788002.html

總結(jié)

以上是生活随笔為你收集整理的matlab散点光滑连线,科研画图:散点连接并平滑(基于Matlab和Python)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。