Почему объекты Line2D, которые должны содержаться в оси Matplotlib, отображаются как пустые? - PullRequest
0 голосов
/ 03 февраля 2019

Фигура изображена просто отлично, но я не могу получить доступ к объектам Line2D.

Пример кода ниже:

import pandas as pd
import numpy as np
from matplotlib import pyplot

df=pd.DataFrame({"col1":np.random.rand(10), "col2":np.random.rand(10)})

fig=pyplot.figure()
ax=fig.add_subplot(1,1,1)

ax=df.plot(kind="scatter", x="col1", y="col2", ax=ax)
ax.lines # the result is an empty list.
fig.show()

Также ax.get_lines() дает тот же результат, то есть без строк,То же самое происходит, когда я строю график непосредственно с ax.scatter(...).

1 Ответ

0 голосов
/ 03 февраля 2019

Я думаю, это то, что вы ищете:

import pandas as pd
import numpy as np
from matplotlib import pyplot 
from matplotlib.lines import Line2D

df=pd.DataFrame({"col1":np.random.rand(10), "col2":np.random.rand(10)})

fig=pyplot.figure()
ax=fig.add_subplot(1,1,1)

ax=df.plot(kind="scatter", x="col1", y="col2", ax=ax)
line = Line2D(df["col1"],df["col2"]) #create the lines with Line2D 
ax.add_line(line) #add the lines to fig
fig.show()

Это возвращает enter image description here

...