也许这将是重复的,但是我找不到任何解决方案。 通常我编写的代码应该在python中显示一条曲线。但是使用此代码我看不到它。我的代码或pycharm有问题吗?此代码仅向我显示一个带有正确轴的空图形。
我确实在plt.plot(at [i],st,“ ro”)中添加了“ ro”。这向我显示了图表上的斑点,但我想看到完整的线条。
at = [0,1,2,3,4,5,6]
for i in range(len(at)):
st = at[i]**2
plt.plot(at[i], st)
plt.show()
答案 0 :(得分:1)
这是通常的操作方式:
import numpy as np
import matplotlib.pyplot as plt
at = np.array([0,1,2,3,4,5,6])
at2 = at ** 2
plt.plot(at,at2)
plt.show()
您可以使用plt.plot(at,at2, c='red', marker='o')
之类的东西来查看景点。
有关详细说明,请阅读文档。
答案 1 :(得分:0)
宁可在绘制之前完全计算要绘制的值。
at = [0,1,2,3,4,5,6]
y = [xi**2 for xi in at]
plt.plot(at, y)
或者使用函数替代
from math import pow
at = [0,1,2,3,4,5,6]
def parabolic(x):
return [pow(xi,2) for xi in x]
plt.plot(at, parabolic(at))
答案 2 :(得分:0)
首先生成两个列表,然后绘制图形:
at = [0,1,2,3,4,5,6]
st = [key**2 for key in at]
plt.plot(at,st)
请注意,以这种方式在图形上的绘制顺序仅完成了一次,效率更高。
答案 3 :(得分:0)
其他答案可以解决您的问题,但请不要告诉您代码为什么不起作用。
之所以没有“看到任何东西”,是因为plt.plot(at[i], st)
试图在您给的点之间画线。但是因为您只给了它单个值,所以它之间没有任何界限。结果,情节上什么都没出现
当您更改为呼叫plt.plot(at[i], st, 'ro')
时,是在告诉它在点处绘制单个圆,而这些圆不会在点之间移动,因此会出现
其他答案显示了如何将多个值传递给plot
,因此matplotlib可以在这些值之间画线。
您的一条评论说“它仍然不是抛物线的”,这是因为matplotlib不是符号绘图库。您只需为其提供数值,然后将其绘制到输出设备上。 sympy
是用于进行符号计算的库,并支持绘图,例如:
from sympy import symbols, plot
x = symbols('x')
plot(x**2, (x, 0, 6))
为我做正确的事。当前版本(1.4)无法处理不连续性,但是在下一个版本中将为fixed