Matplotlib:将循环生成的点与线连接起来

时间:2017-09-27 11:58:25

标签: python loops matplotlib curve

我的代码看起来像这样:

%matplotlib inline 
import matplotlib.pyplot as plt
import numpy as np

for x in np.arange(0,100,5):

plt.scatter(x, x**2, c="blue", marker="o",s=1)


plt.legend()
plt.xlabel("$x$", fontsize=16)
plt.ylabel("$f(x)$", fontsize=16)
plt.show()

给了我附图: plot

如何用线连接点,甚至更优选的是平滑曲线?

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您可以使用plot创建一条平滑线而不是scatter,它会绘制各个点。此外,您不需要在此处执行任何循环,matplotlib处理数组的绘图。

x = np.arange(0, 100, 5)

plt.plot(x, x ** 2, c="blue")

plt.xlabel("$x$", fontsize=16)
plt.ylabel("$f(x)$", fontsize=16)
plt.show()

给出了:

enter image description here

修改

我认为没有办法直接使用分散加入点。你可以做到

plt.scatter(x, x ** 2, c="blue",s=1)
plt.plot(x, x ** 2, c="blue")

基本上是

plt.plot(x, x**2, color="blue", marker="o")

与@RinitanceOfBeingErnest的答案相同

答案 1 :(得分:0)

scatter图显示(可能)不同大小和颜色的各个点。在这种情况下,您似乎想要行plot 其次,没有理由循环遍历数组中的各个点。相反,您希望将完整的数组提供给绘图功能。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(0,100,5)

plt.plot(x, x**2, color="blue", marker="o",ms=5, label="label")


plt.legend()
plt.xlabel("$x$", fontsize=16)
plt.ylabel("$f(x)$", fontsize=16)
plt.show()

enter image description here