Как сделать график больше в seaborn
Перейти к содержимому

Как сделать график больше в seaborn

  • автор:

Как настроить размер рисунка на графике Seaborn

Как настроить размер рисунка на графике Seaborn

Есть два способа изменить размер фигуры морского графика в Python.

Первый метод можно использовать для изменения размера графиков «на уровне осей», таких как графики sns.scatterplot() или sns.boxplot() :

sns.set (rc=) #width=3, #height=4 

Второй метод можно использовать для изменения размера графиков «уровня фигур», таких как графики sns.lmplot() и sns.catplot() или sns.jointplot() .

Этот метод требует, чтобы вы указали высоту и аспект (отношение ширины к высоте) в аргументах диаграммы:

sns.lmplot (data=df, x=" var1", y=" var2", height= 6 , aspect= 1.5 ) #height=6, width=1.5 times larger than height 

В следующих примерах показано, как использовать оба этих метода на практике.

Метод 1: изменение размера графиков на уровне осей

В следующем коде показано, как создать диаграмму рассеяния с шириной 8 и высотой 4:

import pandas as pd import seaborn as sns #create data df = pd.DataFrame() #define figure size sns.set (rc=) #width=8, height=4 #display scatterplot sns.scatterplot(data=df, x=" var1", y=" var2 ") 

А следующий код показывает, как создать коробку с изображением моря шириной 6 и высотой 5:

#define figure size sns.set (rc=) #width=6, height=5 #display scatterplot sns.boxplot(data=df[" var1 "]) 

Метод 2: изменить размер графиков на уровне фигур

Для графиков на уровне фигур (таких как sns.lmplot, sns.catplot, sns.jointplot и т. д.) необходимо указать высоту и ширину в самой диаграмме.

В следующем коде показано, как создать морской lmplot с высотой 5 и шириной в 1,5 раза больше, чем высота:

import pandas as pd import seaborn as sns #create data df = pd.DataFrame() #create lmplot sns.lmplot (data=df, x=" var1", y=" var2", height= 5 , aspect= 1.5 ) #height=5, width=1.5 times larger than height 

А следующий код показывает, как создать совместный участок моря с высотой 3,5. Поскольку совместный график по умолчанию квадратный, нам не нужно указывать значение аспекта:

sns.jointplot (data=df, x=" var1", y=" var2", height= 3.5 ) 

Ознакомьтесь сдокументацией Seaborn для подробного объяснения разницы между функциями на уровне фигур и на уровне осей.

Как увеличить в размере boxplot

Как мне

Как мне сделать чтобы эти надписи не слипались можно ли как-то в размере увеличить? В датасете просто много колонок. И вот 2 этих значения на боксплоте где только минимальное значение и аномалии показаны это как понять

Отслеживать
задан 5 окт 2022 в 22:35
51 7 7 бронзовых знаков
код свой в вопросе приведите, если хотите конкретного ответа. код должен быть в текстовом виде.
6 окт 2022 в 5:05

что касается двух боксов на графике, которые слились в одну линию — нужно смотреть исходные данные. либо там мало значимых данных, либо у них действительно такое странное распределение.

7 окт 2022 в 13:50

@strawdog Да наверное там и то и другое судя по точкам этим сверху — и мало данных и распределены в ноль и вверх туда отдельными выбросами, вообще без промежуточных значений.

7 окт 2022 в 13:58

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Вы можете не только увеличить размер холста, но и управлять метками по осям. например, развернуть их на 90 градусов:

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns df = sns.load_dataset("titanic") df["deck"] = df["deck"].apply(lambda x: x*15) ax = sns.boxplot(data=df, y="fare", x="deck", hue="deck", dodge=False) ax.set_xticklabels(ax.get_xticklabels(), rotation=90) plt.tight_layout() plt.show() 

Seaborn Heatmaps: 13 способов настроить визуализацию матрицы корреляции

Для data scientist’ов проверка корреляций является важной частью процесса анализа поисковых данных. Этот анализ является одним из методов, используемых для определения того, какие функции больше всего влияют на целевую переменную, и, в свою очередь, используются при прогнозировании этой целевой переменной. Другими словами, это широко используемый метод выбора функций в машинном обучении.

А поскольку визуализация обычно проще к пониманию, чем табличные данные, — тепловые карты, как правило, используются для визуализации корреляционных матриц. Простой способ построить тепловую карту в Python — это использовать библиотеку Seaborn.

Аргументы тепловой карты Seaborn

Тепловые карты Seaborn приятны для глаз, и они, как правило, почти сразу посылают четкие сообщения о данных. Вот почему этот метод визуализации корреляционной матрицы широко используется аналитиками данных.

Но что еще мы можем получить из тепловой карты, кроме простого графика корреляционной матрицы?

В двух словах: ОЧЕНЬ МНОГОЕ.

Удивительно, но функция тепловой карты Seaborn имеет 18 аргументов, которые можно использовать для настройки корреляционной матрицы, улучшая способ получения быстрых выводов. В рамках данного руководства мы разберем 13 из них.

Итак, перейдем к делу!

Начало работы с Seaborn

Чтобы немного упростить задачу для этого урока, мы будем использовать один из предварительно установленных наборов данных в Seaborn. Первое, что нам нужно сделать, это импортировать библиотеку Seaborn и загрузить данные.

1. #importing all the libraries needed
2. import seaborn as sns
3. import numpy as np
4. import pandas as pd
5. import matplotlib.pyplot as plt
6.
7. tips_df = sns.load_dataset('tips')
8. tips_df.head()

Обратите внимание: если вы используете Google Colab или какой-либо пакет Anaconda, вам не нужно устанавливать Seaborn; вам нужно только импортировать его. В противном случае, используйте эту ссылку для установки Seaborn.

Наши данные, которые называются Tips (предварительно установленный набор данных в библиотеке Seaborn), имеют 7 столбцов, состоящих из 3 числовых и 4 категориальных признаков. Каждая строка отражает тип клиента (будь то мужчина или женщина, курильщик или некурящий), который ужинает или обедает в определенный день недели. Также фиксируется общая сумма счета, чаевые и размер стола для гостя. (Для получения дополнительной информации о предварительно установленных наборах данных в библиотеке Seaborn, кликните здесь).

Важно отметить, что при построении матрицы корреляции полностью игнорируются любые нечисловые столбцы. В данном уроке все переменные категории были заменены на числовые.

Вот как выглядит DataFrame после обработки данных:

Посмотреть, как были обработаны данные, можно здесь.

Как упоминалось ранее, функция тепловой карты Seaborn может принимать 18 аргументов.

Вот как выглядит функция со всеми аргументами:

sns.heatmap(data, vmin=None, vmax=None, cmap=None,center=None, robust=False, annot=None, fmt=’.2g’, annot_kws=None, linewidths=0, linecolor=’white’, cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels=’auto’, yticklabels=’auto’, mask=None, ax=None, **kwargs)

Просто взглянуть на код и не иметь представления о том, как он работает, может быть весьма удручающе. Давайте разберем это вместе.

Чтобы лучше понять аргументы, мы сгруппируем их в 4 категории:

  1. Основы;
  2. Регулировка оси (измерительной шкалы);
  3. Эстетика;
  4. Изменение формы матрицы.

Основы

1. Самый важный аргумент в функции — ввод данных, поскольку конечной целью является построение корреляции. Метод .corr() будет добавлен к данным в качестве первого аргумента.

sns.heatmap(df_new.corr())

2. Достаточно интерпретировать данные, используя только первый аргумент. Для еще более точной интерпретации необходимо добавить аргумент annot=True , который помогает отобразить коэффициент корреляции.

sns.heatmap(df_new.corr(), annot = True)

3. В некоторых случаях, коэффициенты корреляции могут приближаться к 5 десятичным знакам. Хорошим приемом для уменьшения отображаемого числа и улучшения читабельности является вставка аргумента fmt =’.3g’ или fmt = ‘.1g’ , потому что, по умолчанию, функция отображает две цифры после запятой (больше нуля), т.е. fmt=’.2g’ (Это не означает, что она всегда отображает два знака после запятой). Давайте определим аргумент по умолчанию fmt=’.1g’ .

sns.heatmap(df_new.corr(), annot = True, fmt='.1g')

Для остальной части этого урока мы будем придерживаться значения по умолчанию fmt=’.2g’

Регулировка оси (измерительной шкалы)

4. Следующие три аргумента связаны с масштабированием цветовой шкалы. Бывают моменты, когда шкала не начинается с нуля, отрицательного числа или заканчивается на определенном числе — или даже имеет отдельный центр. Все это можно настроить, указав эти три аргумента: vmin минимальное значение шкалы; vmax максимальное значение шкалы; и center= . По умолчанию, все три не указаны. Допустим, мы хотим, чтобы наша цветовая шкала была от -1 до 1 и была центрирована на 0.

sns.heatmap(df_new.corr(), annot = True, vmin=-1, vmax=1, center= 0)

Одно очевидное изменение, кроме изменения масштаба, заключается в изменении цвета. Это связано с изменением center от None до Zero или любое другое число. Но это не означает, что мы не можем вернуть прошлый цвет или изменить его на любой другой. Сейчас посмотрим, как это сделать.

Эстетика

5. Сейчас изменим цвет, используя аргумент cmap

sns.heatmap(df_new.corr(), annot = True, vmin=-1, vmax=1, center= 0, cmap= 'coolwarm')

Для получения дополнительной информации о доступных цветовых кодах, кликните здесь.

6. По умолчанию, толщина и цвет границы каждой строки матрицы установлены на 0 и белый соответственно. Бывает, когда тепловая карта может выглядеть лучше с некоторой толщиной границы и изменением цвета. В этом случае, применяются аргументы linewidths и linecolor . Давайте укажем linewidths и linecolor на 3 и black соответственно.

sns.heatmap(df_new.corr(), annot = True, vmin=-1, vmax=1, center= 0, cmap= 'coolwarm', linewidths=3, linecolor='black')

Для остальной части этого урока мы вернемся к значениям аргументов cmap , linecolor и linewidths по умолчанию. Это можно сделать с помощью вставки cmap=None , linecolor=’white’ и linewidths=0 или не вставляя аргументы вообще (что мы и собираемся делать).

7. На данный момент цветовая шкала тепловой карты отображается вертикально. Ее можно сделать горизонтальной, указав аргумент cbar_kws .

sns.heatmap(df_new.corr(), annot = True, cbar_kws= )

8. Также бывают случаи, когда лучше вообще убрать цветовую шкалу. Это можно сделать, указав cbar=False .

sns.heatmap(df_new.corr(), annot = True, cbar=False)

В оставшейся части этого урока мы будем отображать цветовую шкалу.

9. Посмотрите поближе на матрицу выше — каждая ячейка прямоугольной формы. Мы можем изменить форму ячеек на квадратную с помощью аргумента square=True .

sns.heatmap(df_new.corr(), annot = True,square=True)

Изменение формы матрицы

Изменение всей формы матрицы с прямоугольной на треугольную не так просто. Для этого нам нужно импортировать методы NumPy .triu() и .tril() , а затем указать аргумент тепловой карты Seaborn, который называется mask=

.triu() является методом в NumPy, который возвращает нижний треугольник любой заданной ему матрицы, в то время как .tril() возвращает верхний треугольник любой заданной ему матрицы.

Идея состоит в том, чтобы отправить матрицу корреляции в метод NumPy, а затем передать ее в аргумент mask, чтобы создать маску в матрице тепловой карты. Давайте посмотрим, как это работает, ниже.

Сначала с помощью np.trui() метода:

matrix = np.triu(df_new.corr())
sns.heatmap(df_new.corr(), annot=True, mask=matrix)

Теперь с помощью np.tril() метода:

mask = np.tril(df_new.corr())
sns.heatmap(df_new.corr(), annot=True, mask=mask)

В заключение

Мы разобрали 13 способов настроить нашу тепловую карту Seaborn для корреляционной матрицы. Остальные 5 аргументов используются редко, поскольку они очень специфичны по характеру данных и сформулированным целям. Полный исходный код этого руководства можно найти на GitHub.

Как изменить размер фигуры в пакете Python Seaborn

У меня возникли проблемы с увеличением размера моих сюжетных фигур с помощью Seaborn. Я использую sns.pairplot для построения столбцов кадра данных друг против друга.

 %matplotlib inline plt.rcParams['figure.figsize']=10,10 columns=list(df.columns.values) g=sns.pairplot(df, kind='reg', x_vars=columns,y_vars = ['Column 1']) 

Сюжеты заполняют данными просто отлично, но размер фигуры слишком мал. Я думал, что plot.rCParams [‘figure.figsize’] будет контролировать, насколько велика цифра, но она, похоже, не вступает в силу. Я пробовал несколько разных предложений от сетевых плат, но ничего не работает.

Vikram Josyula 31 окт. 2015, в 00:44
Поделиться
Вы пробовали параметр size в pairplot ?
mwaskom 31 окт. 2015, в 00:36

Попытка установить размер = 5 в парном графике, чтобы сделать изображения больше, но, похоже, не вступили в силу. Я думаю, проблема в том, что Seaborn пытается поместить все 10 графиков в один ряд, примыкающий друг к другу, и это делает его слишком большим для экрана, если графики не уменьшены. Мне удалось заставить это работать, построив столбцы фрейма данных отдельно, но я подумал, что у seaborn будет способ автоматически разместить столбцы фрейма данных на разных строках без их уменьшения.

Vikram Josyula 01 нояб. 2015, в 18:28

Вы просматриваете их в блокноте? сохраните их как изображения, и я обещаю, что они будут больше с size=5

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *