Как убрать текстовый вывод при вызове графика в Pandas
При выполнении кода
df = pd.DataFrame(np.random.randn(1000, 4), columns=['A','B','C','D'])
pd.plotting.scatter_matrix(df, alpha=0.2)
помимо графика выводится матрица:
array([[<Axes: xlabel='A', ylabel='A'>, <Axes: xlabel='B', ylabel='A'>,
<Axes: xlabel='C', ylabel='A'>, <Axes: xlabel='D', ylabel='A'>],
[<Axes: xlabel='A', ylabel='B'>, <Axes: xlabel='B', ylabel='B'>,
<Axes: xlabel='C', ylabel='B'>, <Axes: xlabel='D', ylabel='B'>],
[<Axes: xlabel='A', ylabel='C'>, <Axes: xlabel='B', ylabel='C'>,
<Axes: xlabel='C', ylabel='C'>, <Axes: xlabel='D', ylabel='C'>],
[<Axes: xlabel='A', ylabel='D'>, <Axes: xlabel='B', ylabel='D'>,
<Axes: xlabel='C', ylabel='D'>, <Axes: xlabel='D', ylabel='D'>]],
dtype=object)
Подскажите, пожалуйста, как убрать эту часть, чтобы остался только график на выводе? И как на этом графике включить сетку? В документации написано grid=True
, но сетка все равно не появляется, хотя на других, например, hist, сетка работает.
Ответы (2 шт):
Если я правильно понял, то можно после вызова добавить plt.show()
pd.plotting.scatter_matrix(df, alpha=0.2)
# Отображение графика и скрытие дополнительного вывода
plt.show()
Либо поставьте ;
после pd.plotting.scatter_matrix(df, alpha=0.2)
, либо присвойте эту строку переменной: res = pd.plotting.scatter_matrix(df, alpha=0.2)
(лучше - второй вариант) - тогда удастся избежать вывода текста с матрицей.
По поводу сетки: строить графики напрямую методами pandas
- не очень хорошая идея с точки зрения стилизации. Воспользуйтесь либо matplotlib
напрямую, либо seaborn
:
import pandas as pd
import numpy as np
import seaborn as sns
df = pd.DataFrame(np.random.randn(1000, 4), columns=['A','B','C','D'])
sns.set_style("whitegrid") # устанавливаем сетку
res = sns.pairplot(df)