如何用Python基于含两个未知数的方程绘制图形?
解决二元方程绘图问题
你的脚本已完成数据准备,但缺少实际的绘图执行代码,同时函数定义里的return语句存在缩进错误,这两个问题导致无法生成图形。以下是修正并补充完整的代码,包含两种常用的可视化方式:
修正后的完整代码
from numpy import exp, sqrt, linspace from matplotlib import pyplot as plt from pylab import meshgrid, cm, imshow, contour, clabel, colorbar, axis, title, show plt.rcParams["figure.figsize"] = [10, 5] plt.rcParams["figure.autolayout"] = True # 修正缩进:return需与函数内代码对齐 def f(x, y): return (1 / sqrt(x)) * exp(-y / 50) * (1 - exp(-x / 1097) * (2 * exp(-y / (2 * 50)) - 1)) x = linspace(10, 1000, 990) y = linspace(10, 50, 40) X, Y = meshgrid(x, y) Z = f(X, Y) # 方式1:绘制热力图(直观展示数值分布) plt.figure() im = imshow(Z, interpolation='bilinear', origin='lower', cmap=cm.jet, extent=[10, 1000, 10, 50]) colorbar(im) title('热力图:二元函数分布') plt.xlabel('x') plt.ylabel('y') show() # 方式2:绘制等高线图(清晰展示等值线) plt.figure() contour_plot = contour(X, Y, Z, cmap=cm.jet) clabel(contour_plot, inline=True, fontsize=10) colorbar(contour_plot) title('等高线图:二元函数等值线') plt.xlabel('x') plt.ylabel('y') show()
关键修正点说明
- 缩进修复:Python函数内代码必须缩进,
return语句需与函数定义保持一致的缩进层级,否则会触发语法错误。 - 添加绘图逻辑:通过
imshow生成热力图,或contour生成等高线图,同时补充颜色条、坐标轴标签和标题,让图形信息更完整。 - 范围匹配:
extent参数确保热力图的坐标轴范围与你设定的x(10-1000)、y(10-50)完全一致。
内容的提问来源于stack exchange,提问作者Elise Cosenza
相关产品推荐
相关产品推荐

