Тепловая карта Seaborn объединяет несколько ярлыков в xticks - PullRequest
0 голосов
/ 16 июня 2019

Я пытаюсь построить тепловую карту, которая отображает различные причины утечки данных за десятилетие наряду с количеством пострадавших индивидуумов.Тепловая карта отображается без ошибок.Тем не менее, xicks помечены путем объединения года и отдельных лиц, затронутых.

causes_of_breaches_by_year = pd.DataFrame(
  df.groupby([
    'Breach Submission Year',
    'Type of Breach'])[['Individuals Affected']]
  .count())
  .reset_index()

causes_of_breaches_by_year['Individuals Affected'] =
    causes_of_breaches_by_year['Individuals Affected']
    .fillna(0)
    .astype(np.int64)

data_breaches_per_year_heatmap = causes_of_breaches_by_year.pivot(
    'Type of Breach',
    'Breach Submission Year'
  )

sns.heatmap(
    annot=True,
    cmap="YlGnBu",
    cbar_kws={'label': 'Individuals Affected'},
    data=data_breaches_per_year_heatmap
  )
  .set_title('Cause of Data Breach by Year')

1 Ответ

0 голосов
/ 26 июня 2019

Краткий ответ

При повороте вы должны указать 3 параметра. См. pandas.DataFrame.pivot

DataFrame.pivot(index=None, columns=None, values=None)[source]

или в вашем случае

piv = df.pivot(index='Type of Breach',
               columns='Breach Submission Year',
               values='Individuals Affected'
               )

Пример

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

sns.set()

df = pd.DataFrame({
    'Breach Submission Year': ['2018', '2018', '2018', '2019', '2019', '2019'],
    'Type of Breach': ['A', 'B', 'C', 'A', 'B', 'C'],
    'Individuals Affected': [1, 2, 6, 2, 5, 6]
})

piv = df.pivot('Type of Breach', 'Breach Submission Year',
               'Individuals Affected')
piv = df.pivot(index='Type of Breach',
               columns='Breach Submission Year',
               values='Individuals Affected'
               )

sns.heatmap(
    annot=True,
    cmap="YlGnBu",
    cbar_kws={'label': 'Individuals Affected'},
    data=piv
).set_title('Cause of Data Breach by Year')

plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...