matplotlib绘制平滑的曲线

问题描述

import numpy as np
from matplotlib import pyplot as plt

x = np.array([6, 7, 8, 9, 10, 11, 12])
y = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00])
plt.plot(x, y)
plt.show()

曲线不平滑
matplotlib绘制平滑的曲线_第1张图片

解决方案

导入make_interp_spline并进一步调用

import numpy as np
from matplotlib import pyplot as plt
from scipy.interpolate import make_interp_spline

x = np.array([6, 7, 8, 9, 10, 11, 12])
y = np.array([1.53E+03, 5.92E+02, 2.04E+02, 7.24E+01, 2.72E+01, 1.10E+01, 4.70E+00])
x_smooth = np.linspace(x.min(), x.max(), 300)
y_smooth = make_interp_spline(x, y)(x_smooth)
plt.plot(x_smooth, y_smooth)
plt.show()

matplotlib绘制平滑的曲线_第2张图片

参考文献

  1. Plot smooth line with PyPlot

你可能感兴趣的:(Python)