Описание
Я искала датасеты на сайте kaggle.com, но долго не могла найти тот, который бы мне подходил. В итоге, через некоторое время я наткнулась на статистику заболевания сердца, мне показалась эта тема интересной и удобной для анализа, поэтому я и взяла именно её.
Типы диаграмм:
- столбчатая диаграмма
- точечная диаграмма
- круговая диаграмма
- линейчатая диаграмма
Я выбрала диаграммы, которые наиболее наглядно и понятно могут показать разницу между данными.
Стилизация
Для создания цветовой палитры, я вдохновлялась своими ассоциация. Например, красные оттенки я взяла, потому что они мне напоминают сердце, светло - желтый я взяла, потому что он мне напоминает человека, а синие оттенки я взяла, потому что они олицетворяют для меня холод и болезнь.

В качестве шрифтового решения я выбрала Arial, потому что он один из самых удобных для чтения текста.

Таблица 1
Код:
import pandas as pd import matplotlib.pyplot as plt
name = df['sex (Мужской: 1; Женский: 0)'].value_counts().index.tolist() value = df['sex (Мужской: 1; Женский: 0)'].value_counts().tolist()
fig, ax = plt.subplots() fig.set_size_inches(30, 15) colors = ['#C1121F', '#669BBC']
plt.pie(value, labels=None, labeldistance=0.45, colors=colors, startangle=45, wedgeprops={'linewidth': 3.0, 'edgecolor': '#EDEBDF'}, autopct='%.0f%%')
for text in plt.gca().texts:
text.set_fontsize(16)
plt.title('Количество мужчин и женщин', fontsize = 30)
fig.patch.set_facecolor('#FDF0D5')
ax.set_facecolor('#FDF0D5')
fig.savefig('pie.jpg')
plt.show()
красные — мужчины, голубые -женщины
Таблица 1 показывает, что у женщин в 2 раза меньше встречается заболевание сердца.
Таблица 2
Код:
import pandas as pd import matplotlib.pyplot as plt
age_counts = df['age'].value_counts().sort_index()
name = age_counts.index.tolist() value = age_counts.tolist()
fig, ax = plt.subplots()
fig.set_size_inches(30, 15)
colors = ['#C1121F', '#003049']
ax.bar(name, value, color=colors)
ax.set_xticks(name)
ax.set_xticklabels(name, fontsize=16, rotation=0)
ax.tick_params(axis='y', labelsize=16)
plt.title('Возраст', fontsize=30)
fig.patch.set_facecolor('#FDF0D5')
ax.set_facecolor('#FDF0D5')
fig.savefig('bar_chart.jpg')
plt.show()
Больше всего в районе 50 - 60 лет
Таблица 3
Код:
import pandas as pd import matplotlib.pyplot as plt
name = df['cp (0 типичная стенокардия, 1 атипичная стенокардия, 2 неангинозная боль, 3 бессимптомная)'].value_counts().index.tolist() value = df['cp (0 типичная стенокардия, 1 атипичная стенокардия, 2 неангинозная боль, 3 бессимптомная)'].value_counts().tolist()
fig, ax = plt.subplots()
fig.set_size_inches(30, 15)
colors = ['#C1121F', '#003049', '#780000', '#669BBC']
ax.plot(name, value, marker='o', color=colors[0], linewidth=2, markersize=10)
ax.set_xticks(name)
ax.set_xticklabels(name, fontsize=16, rotation=0)
ax.tick_params(axis='y', labelsize=16)
plt.title('Тип болезни', fontsize=30)
fig.patch.set_facecolor('#FDF0D5')
ax.set_facecolor('#FDF0D5')
fig.savefig('line_chart.jpg')
plt.show()
0-типичная стенокардия, 1-атипичная стенокардия, 2-неангинозная боль, 3-бессимптомная,
Можно заметить, что у большинства боль в груди была бессимптомной.
Таблица 4
Код:
import pandas as pd import matplotlib.pyplot as plt
name = df['target (1 заюолевание сердца, 0 здоров)'].value_counts().index.tolist() value = df['target (1 заюолевание сердца, 0 здоров)'].value_counts().tolist()
fig, ax = plt.subplots() fig.set_size_inches(30, 15) colors = ['#C1121F', '#003049'] ax.barh(name, value, color=colors) ax.set_yticks([]) ax.tick_params(axis='y', labelsize=16) ax.tick_params(axis='x', labelsize=16) plt.title('Тип болезни', fontsize=30) fig.patch.set_facecolor('#FDF0D5') ax.set_facecolor('#FDF0D5') fig.savefig('horizontal_bar_chart.jpg') plt.show()
Синий — болезнь сердца есть, красный — нет
Итог
Таким образом, опрос был между людьми с болью в груди, можно заметить, что у половины из них было заболевание сердца. Можно прийти к выводу, что боль в груди не всегда является болью в сердце, но всегда нужно учитывать риски.
Данные




