matplotlib库疑难问题---8、几个点画曲线
matplotlib库疑难问题---8、几个点画曲线
一、总结
一句话总结:
原理:几个点画曲线的原理和我们日常直接画曲线一样,就是在这几个点之间多造一些点,直接在x数据的最小值和最大值之间造一些x数据,然后用scipy.interpolate模块的 make_interp_spline函数造x对应的y的点,即可画图
引入库:from scipy.interpolate import make_interp_spline
造x点:x_smooth = np.linspace(x.min(),x.max(),300) #300 represents number of points to make between x.min and x.max
造y点:y_smooth = make_interp_spline(x, y)(x_smooth)
二、matplotlib库几个点画曲线
博客对应课程的视频位置:8、几个点画曲线-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/384
需求
我就只有几个点,我就想让它变成曲线
1、一般我们画曲线
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-np.pi,np.pi,1000)
y=np.sin(x)
plt.plot(x,y)
plt.show()
我们减少点的个数会怎样
2、我就只有几个点,我就想让它变成曲线
import numpy as np
import matplotlib.pyplot as plt
x=np.array([1,2,3,4,5])
y=np.array([4,9,6,8,3])
plt.plot(x,y)
plt.show()
原理和上面产生曲线的原理是一样的:虽然只有几个点,但是我多造几个点
几个点画曲线的原理和我们日常直接画曲线一样,就是在这几个点之间多造一些点,直接在x轴的最小值和最大值之间造一些x,然后用scipy.interpolate模块的 make_interp_spline函数造x对应的y的点,即可画图
import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import make_interp_spline
x=np.array([1,2,3,4,5])
y=np.array([4,9,6,8,3])
plt.plot(x,y,'ro',markersize=12)
x_smooth = np.linspace(x.min(),x.max(),300) #300 represents number of points to make between x.min and x.max
y_smooth = make_interp_spline(x, y)(x_smooth)
print(len(y_smooth))
plt.plot(x_smooth,y_smooth,'r--')
plt.show()
本系列博客对应课程位置:
1、解决中文乱码问题-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/371
2、将曲线平滑-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/372
3、matplotlib绘图核心原理-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/373
4、画动态图-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/374
5、保存动态图-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/375
6、显示图片-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/376
7、去掉刻度和边框-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/383
8、几个点画曲线-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/384
9、画箭头(综合实例)-1-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/391
9、画箭头(综合实例)-2-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/392
10、画直方图-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/393
11、画动态直方图-范仁义-读书编程笔记
https://www.fanrenyi.com/video/43/394