【问题标题】:Matplotlib: Connect points generated by loop with line [duplicate]Matplotlib:将循环生成的点与线连接[重复]
【发布时间】:2017-09-27 11:58:24
【问题描述】:

我的代码如下所示:

%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()

这给了我附图:

如何将点与线连接,或者更理想的是平滑曲线?

提前感谢您的帮助!

【问题讨论】:

    标签: python loops matplotlib curve


    【解决方案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()
    

    这给出了:

    编辑

    我认为没有办法直接使用 scatter 连接点。你可以这样做

    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")
    

    这与@ImportanceOfBeingErnest 的回答相同

    【讨论】:

    • 好的,我意识到我的问题有点误导。我不想使用 plt,但我要求使用 scatter 的特定方法。
    【解决方案2】:

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-26
      • 2013-12-06
      • 2018-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多