Увеличение промежутка между бункерами в морском районе

Так что у меня, наверное, простой вопрос. Я создал гистограмму из данных из файла Excel с Seaborn. Для лучшей визуализации, я хотел бы иметь некоторое пространство между барами / корзинами. Это возможно?

Мой код выглядит следующим образом

import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

%matplotlib inline
from IPython.display import set_matplotlib_formats
set_matplotlib_formats('svg', 'pdf')


df = pd.read_excel('test.xlsx')
sns.set_style("white")
#sns.set_style("dark")
plt.figure(figsize=(12,10))
plt.xlabel('a', fontsize=18)
plt.ylabel('test2', fontsize=18)

plt.title ('tests ^2', fontsize=22)


ax = sns.distplot(st,bins=34, kde=False, hist_kws={'range':(0,1), 'edgecolor':'black', 'alpha':1.0}, axlabel='test1')

Второй вопрос, хотя и немного не по теме, заключается в том, как мне на самом деле поднять показатель в названии графика?

Спасибо!

3 ответа

Решение

Матплотлиб hist функция имеет аргумент rwidth

rwidth: скаляр или None, необязательно
Относительная ширина столбцов в виде доли от ширины корзины.

Вы можете использовать это внутри distplot через hist_kws аргумент.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

x = np.random.normal(0.5,0.2,1600)

ax = sns.distplot(x,bins=34, kde=False, 
                  hist_kws={"rwidth":0.75,'edgecolor':'black', 'alpha':1.0})

plt.show()

hist_kws

для Seaborn>= 0.11 используйте параметр. Он масштабирует ширину каждой полосы по отношению к ширине бина с помощью этого параметра. Остальное будет пустым местом.

Документация: https://seaborn.pydata.org/generated/seaborn.histplot.html

Отправив свой ответ, я понял, что ответил противоположным тому, о чем меня спрашивали. Я нашел этот вопрос, пытаясь понять, как убрать пробел между полосами. Я почти удалил свой ответ, но на тот случай, если кто-то еще наткнется на этот вопрос и попытается удалить промежуток между полосами на графике истории seaborn, я пока оставлю его.

Благодаря @miro за обновленную документацию Seaborn я обнаружил, что element='step'работал у меня. В зависимости от того, что именно вы хотите, element='poly' может быть то, что вам нужно.

Моя реализация с шагом:

      fig,axs = plt.subplots(4,2,figsize=(10,10))
i,j = 0,0
for col in cols:
    sns.histplot(df[col],ax=axs[i,j],bins=100,element='step')
    axs[i,j].set(title="",ylabel='Frequency',xlabel=labels[col])
    i+=1
    if i == 4: 
        i = 0
        j+=1

Моя реализация с поли:

      fig,axs = plt.subplots(4,2,figsize=(10,10))
i,j = 0,0
for col in cols:
    sns.histplot(df[col],ax=axs[i,j],bins=100,element='poly')
    axs[i,j].set(title="",ylabel='Frequency',xlabel=labels[col])
    i+=1
    if i == 4: 
        i = 0
        j+=1

Другие вопросы по тегам