【问题标题】:Matplotlib graph appearing as a Python list typeMatplotlib 图显示为 Python 列表类型
【发布时间】:2015-08-04 11:44:09
【问题描述】:

以下代码生成一个图表:

import matplotlib
gr = matplotlib.pyplot.plot([1,2,3])

现在,如果我检查这个看似图形对象的类型:

type(gr)

输出是:

list

我原以为它是某种 matplotlib 图形对象,但这是一个原生 Python 列表。谁能解释一下为什么?

【问题讨论】:

    标签: python list matplotlib graph types


    【解决方案1】:

    返回的是绘制的线条列表,而不是图形对象本身,请参阅docs

    返回值是添加的行列表。

    在我的情况下,我将其视为对象:

    [<matplotlib.lines.Line2D at 0xb2f83c8>]
    

    类型是list,内容是Line2D 对象:

    In [141]:
    
    for e in l:
        print(e)
    Line2D(_line0)
    

    Line2D 的内容是添加到情节中的线条:

    In [146]:
    
    l[0].get_data()
    Out[146]:
    (array([ 0.,  1.,  2.]), array([1, 2, 3]))
    

    编辑

    如果你想访问Figure进行保存,我个人是这样写的:

    import matplotlib.pyplot as plt
    plt.plot([1,2,3])
    plt.Figure() #  do something with Figure here
    

    【讨论】:

    • 那么我该如何保存图形呢? list[0].get_figure() 还是有更优雅的方式?
    • 通常人们会这样做import matplotlib.pyplot as plt plt.plot([1,2,3]),然后您可以使用plt.Figure()访问该图
    【解决方案2】:

    来自matplotlib documents,绘图函数,

    返回值是添加的行列表。

    每个列表项本身都是matplotlib.lines.Line2D 类型,这可能是预期的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 2014-03-08
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      相关资源
      最近更新 更多