Почему объекты Line2D, которые должны содержаться в оси Matplotlib, отображаются как пустые?
На рисунке все в порядке, но я не могу получить доступ к объектам 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 ответ
Я думаю, это то, что вы ищете:
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()