Matplotlib绘制二次函数报错:ValueError维度不匹配问题求助
解决Matplotlib的ValueError:x和y维度不匹配问题
错误原因
你的代码里y一开始是空列表,然后写了for i in y:循环——空列表的循环根本不会执行,所以y始终是空的。但你传给plt.plot的x参数有11个元素(从-5到5),空列表和11个元素的列表维度不匹配,自然抛出ValueError。
修正后的代码(修复原逻辑)
import matplotlib.pyplot as plt y = [] x = -5 # 直接循环计算每个x对应的y值,添加到y列表 while x >= -5 and x <= 5: y_val = 2 * x**2 + 3 * x + 5 y.append(y_val) x += 1 # 用range生成x列表,替代手动输入 x_values = list(range(-5, 6)) plt.plot(x_values, y) plt.show()
更简洁的写法(列表推导式)
Python里可以用列表推导式直接生成y值列表,代码更简洁易读:
import matplotlib.pyplot as plt x_values = list(range(-5, 6)) # 一行生成所有y值 y_values = [2 * x**2 + 3 * x + 5 for x in x_values] plt.plot(x_values, y_values) plt.show()
内容的提问来源于stack exchange,提问作者Rediet Workneh
相关产品推荐
相关产品推荐

