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

Python matplotlib绘图无曲线显示问题求助

问题解决:Matplotlib绘制积分曲线无线条显示

问题根源

你的代码中,for r in arange(0,5,0.01)循环只是不断将x赋值为当前r,最终x和r都只保留了循环的最后一个值(即4.99),而y和y1也只是对应这个单个x值的积分结果。plt.plot()传入单个数值时,默认不会绘制线条(仅绘制单个点,且无标记的话看不到),所以图表只有框架没有曲线。

修正后的代码

import scipy
from numpy import arange
import matplotlib.pyplot as plt

def integral_function(x, a, b, c):
    return a*x**2 + b*x + c

# 生成所有x值的数组
x_values = arange(0, 5, 0.01)
# 对每个x值计算积分,收集为数组
y_values = [scipy.integrate.quad(integral_function, 0, x, args=(2,3,4))[0] for x in x_values]
y1_values = [scipy.integrate.quad(integral_function, 0, x, args=(2,1,1))[0] for x in x_values]

# 使用完整的x和y数组绘图
plt.plot(x_values, y_values)
plt.plot(x_values, y1_values)
plt.xlabel("r values")
plt.ylabel("values of integration")
plt.legend(["for a,b,c = 2,3,4","for a,b,c = 2,1,1"])
plt.title("integration of ax^2 + bx + c")
plt.show()

关键修改点

  • 直接生成完整的x_values数组,替代原循环的单个赋值操作
  • 使用列表推导式遍历每个x值,计算并收集对应的积分结果,得到完整的y_values和y1_values数组
  • 绘图时传入完整的x和y数组,plt.plot()会自动连接所有点形成曲线

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 21:32:56