Python曲线平滑处理

背景

在用Python画函数图形时发现曲线不平滑,百度发现解决方案核心思想是插值法,即将定义域的取值点增加到原来的100倍甚至以上,即可达到曲线平滑的目的。所以仅仅需要增加取值点的个数。

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# quantitative genetics homework
import numpy as np
import matplotlib.pyplot as plt

plt.title("Effect of selection on gene frequency for different initial frequencies")
plt.xlabel("Frequency of A2")
plt.ylabel("Δq")
q = np.arange(0, 1.01, 0.01)#真实取值点个数为(1.01-0)/0.01
qt = np.arange(0, 1.1, 0.1)#x轴画出的单位长度为0.1,范围在(0, 1.0),1.1不取
plt.xticks(qt)#途中所展示单位长度

p = 1 - q
s = 0.2
Q1 = s*q**2*(1-q)/(1-s*(1-q**2))
plt.plot(q, Q1)

Q2 = p*q*(s*p-s*q)/(1-s*p**2-s*q**2)
plt.plot(q, Q2)

y = np.arange(-0.023, 0.035, 0.002)
plt.yticks(y)
plt.grid()
plt.show()

图像展示

展示图

参考

Python如何对折线进行平滑曲线处理?

-------------本文结束 感谢您的阅读-------------
暖一下
ZJohnson wechat
扫一扫,领红包!
0%