【问题标题】:How to plot multiple functions on the same figure, in Matplotlib?如何在 Matplotlib 中在同一个图形上绘制多个函数?
【发布时间】:2014-04-12 03:12:24
【问题描述】:

如何在同一图中在域 t 上绘制以下 3 个函数(即 sincos 和加法)?

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0, 2*math.pi, 400)

a = sin(t)
b = cos(t)
c = a + b

【问题讨论】:

    标签: python function matplotlib graph


    【解决方案1】:

    要在同一个图形上绘制多个图形,您必须这样做:

    from numpy import *
    import math
    import matplotlib.pyplot as plt
    
    t = linspace(0, 2*math.pi, 400)
    a = sin(t)
    b = cos(t)
    c = a + b
    
    plt.plot(t, a, 'r') # plotting t, a separately 
    plt.plot(t, b, 'b') # plotting t, b separately 
    plt.plot(t, c, 'g') # plotting t, c separately 
    plt.show()
    

    【讨论】:

    • 好的,现在如果要在新图表上绘制下一个图表,如何清除图表?
    • @NoName:你所说的“清除情节”是什么意思?是否要关闭绘图窗口并绘制一个新窗口?
    • 没关系,调用plt.show()后默认图形会自动清除,因此再次绘制不会在同一个图形上绘制。
    • 如何自定义高度、宽度?在我的情况下,默认尺寸太小。 figsize 不工作
    • @NikhilVJ:fig = plt.figure(figsize=(10,10)), ax = fig.add_subplot(111), ax.plot(a,b,'r'), fig.show(),原则上应该可以。
    【解决方案2】:

    也许是一种更 Pythonic 的方式。

    from numpy import *
    import math
    import matplotlib.pyplot as plt
    
    t = linspace(0,2*math.pi,400)
    a = sin(t)
    b = cos(t)
    c = a + b
    
    plt.plot(t, a, t, b, t, c)
    plt.show()
    

    【讨论】:

    • 你也可以用这个方法改变每个图的颜色吗?如果有,怎么做?
    • 您可以通过将plt.plot() 部分更改为:plt.plot(t, a, 'b', t, b, 'g', t, c, 'y') 来指定颜色。您可以根据此链接中给出的颜色指定颜色:matplotlib.org/users/colors.html
    • 难道我们不能在 pyplot 中使用 ion() 这样做太正确,而不是在一行中绘制所有内容吗?
    • @toing_toing 抱歉,我不太了解ion()。可以举个例子吗?
    • 这个答案比公认的答案“更 Pythonic”吗? “显式胜于隐式。”和可读性支持接受的答案恕我直言(我承认这是主观的)。通过对三条曲线使用类似的“t”变量来快速理解您的密集 plt.plot() 调用,这不是系统的。话虽如此,我认为知道这个版本的存在很有趣。
    【解决方案3】:

    只需使用函数plot如下

    figure()
    ...
    plot(t, a)
    plot(t, b)
    plot(t, c)
    

    【讨论】:

      【解决方案4】:

      如果你想使用图,我举一个例子,你想在同一个图中绘制多条 ROC 曲线:

      from matplotlib import pyplot as plt
      plt.figure()
      for item in range(0, 10, 1): 
          plt.plot(fpr[item], tpr[item])
      plt.show()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-29
        • 1970-01-01
        • 2022-01-19
        • 2019-04-19
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        相关资源
        最近更新 更多