Nano Hash - криптовалюты, майнинг, программирование

Как я могу добавить количество наблюдений к штриховому графику Seaborn?

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

В моем коде первый блок создает штриховой график.

Я создал вторые два блока кода из примеров, которые я нашел в другом месте. Я получаю сообщение об ошибке, указывающее на строку, начинающуюся с «медианы», и в сообщении говорится: AttributeError: объект 'float' не имеет атрибутов 'values'

sns.set_style("whitegrid")
ax = sns.barplot(x=barplot_x, y="trump_margin_pct", 
data=mean_analysis)
sns.palplot(sns.diverging_palette(240, 0))
ax.set(xlabel='Strength of Candidate Support', ylabel='Average Trump 
Margin of Victory/(Loss) (in %)')  
ax.set_title('Average Strength of Candidate Support Across Groups of 
Counties, 2016')

# Calculate number of obs per group & median to position labels
medians = mean_analysis['trump_margin_pct'].median().values
nobs = mean_analysis['trump_margin_pct'].value_counts().values
nobs = [str(x) for x in nobs.tolist()]
nobs = ["n: " + i for i in nobs]

# Add it to the plot
pos = range(len(nobs))
for tick,label in zip(pos,ax.get_xticklabels()):
     ax.text(pos[tick], medians[tick] + 0.03, nobs[tick],
horizontalalignment='center', size='x-small', color='w', 
weight='semibold')
16.03.2018

Ответы:


1

Ваш подход почти правильный. Однако вы вычисляете медиану и количество наблюдений по всем данным mean_analysis['trump_margin_pct'], а не по группам. Это вызывает вашу ошибку. Вы можете использовать groupby для расчета по группам.

Медиана:
Просто добавьте groupby, чтобы вычислить медианное значение.

medians = mean_analysis.groupby(['barplot_x'])['trump_margin_pct'].median().values


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

nobs = mean_analysis.groupby(['barplot_x'])['trump_margin_pct'].agg(['count'])
nobs = ["n: " + str(i) for s in nobs.values for i in s]


Пример:
Я использовал фиктивные данные, чтобы воссоздать ваш пример.

import seaborn as sns

sns.set_style("whitegrid")
tips = sns.load_dataset("tips")
ax = sns.barplot(x="day", y="total_bill", data=tips)
ax.set(xlabel='Strength of Candidate Support', ylabel='Average Trump Margin of Victory/(Loss) (in %)')  
ax.set_title('Average Strength of Candidate Support Across Groups of Counties, 2016')

medians = tips.groupby(['day'])['total_bill'].median().values
nobs = tips.groupby(['day'])['total_bill'].agg(['count'])
nobs = ["n: " + str(i) for s in nobs.values for i in s]

pos = range(len(nobs))
for tick,label in zip(pos,ax.get_xticklabels()):
    ax.text(pos[tick], medians[tick] + 0.03, nobs[tick], horizontalalignment='center', size='x-small', color='w', weight='semibold')

введите описание изображения здесь

16.03.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..