В pandas и matplotlib, почему plt не вызывается непосредственно на фрейме данных? - PullRequest
0 голосов
/ 22 мая 2018

Мне не понятно, почему построение выполняется так:

import pandas as pd
import matplotlib.pyplot as plt

df.boxplot(column='initial_cost', by='Borough', rot=90)

plt.show()

Как фрейм данных связан с plt.show ()?Я выполнил несколько поисков в Интернете и даже взглянул на документацию (!), Но не смог найти ничего, что конкретно касалось этого.

Я бы ожидал чего-то большего:

boxplot = df.boxplot(column='initial_cost', by='Borough', rot=90)
plt.show(boxplot)

Или даже что-то вроде этого:

boxplot = df.boxplot(column='initial_cost', by='Borough', rot=90)
boxplot.plt.show()

1 Ответ

0 голосов
/ 22 мая 2018

Matplotlib предоставляет MATLAB -подобный конечный автомат , модуль pyplot, который заботится о создании и управлении всеми объектами, необходимыми для рисования графика.

Панды зацепляют это таким же образом.При вызове он заботится о загрузке pyplot и создании matplotlib Figure, Axes, нескольких Line2D объектов и всего, что делаетблокпост.

Когда вы звоните plt.show(), он будет отслеживать все фигуры, которые вы создали с помощью API конечного автомата, создайте графический интерфейс с этими фигурами и позаботьтесь о его отображении.

Есливам нужно больше контроля, вы, конечно, можете сделать все сами с помощью объектно-ориентированного API.Создайте фигуру, оси, нарисуйте холст вручную, все это при необходимости.

Насколько я знаю, обычная практика - это сочетание обоих: при необходимости подключайтесь к объектно-ориентированному API, но все жепусть pyplot позаботится об отображении или сохранении всего в файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...