2015-05-22 2 views
1

Следующий код создает график:Matplotlib график появляясь как тип списка Python

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

enter image description here

Теперь, если я проверить тип этого, казалось бы графа объекта:

type(gr) 

Выходной сигнал:

list 

Я ожидал, что это будет какой-то графический объект matplotlib, но это станет родным списком Python. Может ли кто-нибудь объяснить, почему?

ответ

4

Ну, что возвращается список из линий, которые нанесены не сам объекта графа, см возвращаемого значения 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])) 

EDIT

Если вы хотите получить доступ к Figure для экономии, я лично пишу так:

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

Итак, как мне сэкономить цифру? 'list [0] .get_figure()' или есть более элегантный способ? – multigoodverse

+0

Обычно люди делают это 'import matplotlib.pyplot как plt plt.plot ([1,2,3])' вы можете получить доступ к фигуре с помощью 'plt.Figure()' – EdChum

1

С Matplotlib documents, функции участка,

Возвращаемое значение является список добавленных строк.

Каждый из элементов списка - это matplotlib.lines.Line2D типов, как и следовало ожидать.

Смежные вопросы