Добавил:
t.me Установите расширение 'SyncShare' для решения тестов в LMS (Moodle): https://syncshare.naloaty.me/ . На всякий лучше отключить блокировщик рекламы с ним. || Как пользоваться ChatGPT в России: https://habr.com/ru/articles/704600/ || Также можно с VPNом заходить в bing.com через Edge браузер и общаться с Microsoft Bing Chat, но в последнее время они форсят Copilot и он мне меньше нравится. || Студент-заочник ГУАП, группа Z9411. Ещё учусь на 5-ом курсе 'Прикладной информатики' (09.03.03). || Если мой материал вам помог - можете написать мне 'Спасибо', мне будет очень приятно :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 курс 1 семестр / Курсовая / Z9411_КафкаРС_БД_Курс.docx
Скачиваний:
23
Добавлен:
24.10.2023
Размер:
1.17 Mб
Скачать
  1. Обработка и визуализация данных

7.1 Обработка и визуализация данных инструментами языка программирования Python

Была выполнена обработка данных и визуализированы результаты инструментами языка программирования Python.

Был написан код подключения языка программирования Python к Workbench. Код подключения представлен в листинге 34.

Листинг 34 – Код подключения

import matplotlib.pyplot as plt

import mysql.connector

# Connect to the database

cnx = mysql.connector.connect(

user='root',

password='admin',

host='127.0.0.1',

port=3306,

database='airport')

# Create a cursor object

cursor = cnx.cursor()

# Close the cursor and the connection

cursor.close()

cnx.close()

Был написан код для обработки данных и визуализации городов назначения (des_city) по популярности среди пассажиров, сколько людей отправились в ту или иную страну. Код обработки и визуализации данных популярности туров представлен в листинге 35. График популярности представлен на рисунке 40.

Листинг 35 – Код обработки и визуализации данных популярности городов прилёта среди пассажиров

import matplotlib.pyplot as plt

import mysql.connector

# Connect to the database

cnx = mysql.connector.connect(

user='root',

password='admin',

host='127.0.0.1',

port=3306,

database='airport')

# Create a cursor object

cursor = cnx.cursor()

# execute a query

query = '''

SELECT des_city, COUNT(*) as popularity

FROM flights

GROUP BY des_city

'''

cursor.execute(query)

# fetch the results

results = cursor.fetchall()

# print the results

print(results)

# extract the data from results

cities = [r[0] for r in results]

popularity = [r[1] for r in results]

# create a bar chart

plt.bar(cities, popularity)

plt.grid()

plt.xlabel('Города прибытия')

plt.ylabel('Популярность')

plt.show()

# Close the cursor and the connection

cursor.close()

cnx.close()

Рисунок 40 – Визуализация городов назначения (des_city) по популярности среди пассажиров

Был написан код для обработки данных и визуализации количества пассажиров мужского и женского пола. Код обработки и визуализации данных представлен в листинге 36. График представлен на рисунке 41.

Листинг 36 – Код обработки и визуализации данных количества пассажиров разного пола

import mysql.connector

import matplotlib.pyplot as plt

# Connect to the database

cnx = mysql.connector.connect(

host='127.0.0.1',

user='root',

password='admin',

database='airport'

)

# Create a cursor

cursor = cnx.cursor()

# Execute the query

query = '''

SELECT gender, COUNT(*) as count

FROM passangers

GROUP BY gender

'''

cursor.execute(query)

# Fetch the results

results = cursor.fetchall()

# Create two lists to hold the values

labels = []

sizes = []

# Iterate through the results

for result in results:

labels.append(result[0])

sizes.append(result[1])

# Plot the pie chart

plt.pie(sizes, labels=labels, autopct='%1.1f%%')

plt.axis('equal')

plt.show()

# Close the cursor and connection

cursor.close()

cnx.close()

Этот код подключается к базе данных "airport" с помощью библиотеки "mysql.connector" и выполняет запрос для подсчета количества людей с полом "м" и "ж". Затем результаты извлекаются и сохраняются в двух списках: "labels" и "sizes". Затем используется библиотека "matplotlib" для создания круговой диаграммы с данными из этих списков, с метками пола на срезах круга и процентом людей с этим полом, отображаемым в центре каждого среза. Наконец, диаграмма отображается с помощью функции "plt.show()".

Рисунок 41 – Диаграмма о количестве пассажиров мужского и женского пола.

Был написан код для обработки данных и визуализации данных о количестве проданных билетов. Код подключения к MySQL Workbench с помощью библиотеки mysql-connector-python, запроса необходимых данных о количестве проданных билетов по месяцам, и визуализации их с помощью библиотеки matplotlib представлен в листинге 37.

Листинг 37 – Код обработки и визуализации данных о количестве проданных билетов по месяцам

import mysql.connector

import matplotlib.pyplot as plt

# Connect to MySQL server

cnx = mysql.connector.connect(

host='127.0.0.1',

user='root',

password='admin',

database='airport'

)

# Create cursor and execute query

cursor = cnx.cursor()

query = "SELECT DATE_FORMAT(sale_date, '%Y-%m') as month, COUNT(ticket_id) as tickets_sold FROM tikets GROUP BY month ORDER BY month"

cursor.execute(query)

# Fetch and store results

months = []

tickets_sold = []

for (month, count) in cursor:

months.append(month)

tickets_sold.append(count)

# Close cursor and connection

cursor.close()

cnx.close()

# Create subplot

fig, axs = plt.subplots(1)

axs.plot(months, tickets_sold)

axs.grid()

axs.set_title("Количество проданных билетов в месяц")

axs.set_xlabel("Месяц")

axs.set_ylabel("Билетов Продано")

# Show plot

plt.show()

Этот код подключится к серверу MySQL, выполнит запрос для получения количества проданных билетов по месяцам, сохранит результаты в двух отдельных списках (months и tickets_sold), а затем использует метод plot() из matplotlib для создания графика данных и отображения ее в виде вложенного графика. Результат представлен на рисунке 42.

Рисунок 42 – Диаграмма о количестве проданных билетов в месяце

Соседние файлы в папке Курсовая