You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

绘图时如何纳入整数间的输入值以生成平滑曲线?

平滑曲线绘图解决方案

我的代码


import matplotlib.pyplot as plt
import numpy as np

xmin, xmax=-3,3
x= np.array(range(xmin, xmax+1))
y,ysqr,ycube = x,x**2,x**3

f, (ax1, ax2, ax3) = plt.subplots(1,3, figsize=(25,8))

ax1.plot(x, y)
ax1.set_title('y=x')

ax2.plot(x, ysqr)
ax2.set_title('y=x^2')

ax3.plot(x, ycube)
ax3.set_title('y=x^3')

plt.show()

问题


仅使用整数x值绘图,导致生成的曲线不够平滑。
曲线不够平滑的效果图

需求


如何在绘图时纳入整数之间的x取值,以生成平滑的曲线?


解决方法

要生成平滑曲线,关键是让x轴包含足够多的非整数取值。可以用NumPy的linspace()函数替代range(),生成指定区间内的均匀分布数值。

修改后的代码:

import matplotlib.pyplot as plt
import numpy as np

xmin, xmax = -3, 3
# 在-3到3之间生成100个等间距数值,数量越多曲线越平滑
x = np.linspace(xmin, xmax, 100)
y, ysqr, ycube = x, x**2, x**3

f, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(25, 8))

ax1.plot(x, y)
ax1.set_title('y=x')

ax2.plot(x, ysqr)
ax2.set_title('y=x^2')

ax3.plot(x, ycube)
ax3.set_title('y=x^3')

plt.show()

说明

  • np.linspace(xmin, xmax, 100)会生成从-3到3的100个均匀分布点,覆盖了整数之间的所有中间值,绘图时自然形成平滑曲线。
  • 可根据需要调整第三个参数(比如改为200)增加点数,进一步提升平滑度;减少点数则平滑度降低,按需调整即可。

内容的提问来源于stack exchange,提问作者Dron Bhattacharya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 23:45:41