Как построить гистограмму без агрегирования Seaborn? - PullRequest
0 голосов
/ 26 мая 2020

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

По умолчанию, sns.barplot(x = "col1", y = "col2", data = df) будет агрегироваться, взяв среднее значение для каждой категории в col1.

Как мне просто построить полосу для каждой строки в моем фрейме данных с нет агрегации?

1 Ответ

1 голос
/ 26 мая 2020

Если 'col1' содержит только уникальные метки, вы сразу же получите результат с sns.barplot(x='col1', y='col2', data=df). В случае повторяющихся меток вы можете использовать индекс как x, а затем изменить галочки:

from matplotlib import pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns

df = pd.DataFrame({'col1': list('ababab'), 'col2': np.random.randint(10, 20, 6)})
ax = sns.barplot(x=df.index, y='col2', data=df)
ax.set_xticklabels(df['col1'])
ax.set_xlabel('col1')
plt.show()

example plot

PS: Аналогично, горизонтальную гистограмму можно создать как:

df = pd.DataFrame({'col1': list('ababab'), 'col2': np.random.randint(10, 20, 6)})
ax = sns.barplot(x='col2', y=df.index, data=df, orient='h')
ax.set_yticklabels(df['col1'])
ax.set_ylabel('col1')
...