- •Введение
- •1 Анализ предметной области
- •2 Составление требуемых запросов к базе данных
- •3 Анализ разрешений и запретов на операции с табличными данными для различных пользователей
- •4 Проектирование пользовательского интерфейса
- •5 Обработка и визуализация данных
- •Заключение
- •Список использованных источников
5 Обработка и визуализация данных
Выполним обработку данных и визуализируем результаты инструментами языка программирования Python.
Код подключения языка программирования Python к Workbench представлен в листинге 42.
Листинг 42 – Код подключения
import pandas as pd
import matplotlib.pyplot as plt
import pymysql.cursors
if __name__ == '__main__':
connection = pymysql.connect(host = '127.0.0.1',
user = 'root',
password = 'admin',
db ='ad',
charset ='utf8mb4',
cursorclass = pymysql.cursors.DictCursor)
Был написан код для обработки данных и визуализации соотношения совершенных агентами сделок, сколько каждый из них заключил договоров. Код обработки и визуализации данных представлен в листинге 43. График популярности представлен на рисунке 39. Данный график полезен администрации компании, например, для выписки премии особо активным по заключениям договоров агентам, а также для заказчиков – для выбора профессионального агента.
Листинг 43 – Код обработки и визуализации данных совершенных агентами сделок
with connection.cursor() as cursor:
sql = "select agent.agent_lastname as AgentName, count(contract.contract_id) as CountOfContracts from agent, contract where contract.agent_id = agent.agent_id group by agent.agent_lastname"
cursor.execute(sql)
rows = cursor.fetchall()
df = pd.DataFrame(rows)
connection.close()
print(df)
fig, ax = plt.subplots()
plt.title('Количество сделок')
plt.tick_params(axis='x',rotation=90)
plt.pie(df['CountOfContracts'], labels=df['AgentName'])
plt.tight_layout()
plt.show()
Рисунок 39 – График совершенных агентами сделок
Был написан код для обработки данных и визуализации. Код обработки и визуализации данных показов реклам заказчиков представлен в листинге 44. График показов представлен на рисунке 40. На основе этого графика администрация компании сможет проанализировать статистику по просмотрам реклам.
Листинг 44 – Код обработки и визуализации данных о времени реклам
with connection.cursor() as cursor:
sql = "select customer.customer_contactperson as CustomerName, count(contract.ad_id)*ad.ad_duration as Showing from ad, contract, customer where contract.ad_id = ad.ad_id and contract.customer_id = customer.customer_id group by customer.customer_id"
cursor.execute(sql)
rows = cursor.fetchall()
df = pd.DataFrame(rows)
connection.close()
print(df)
fig, ax = plt.subplots()
plt.title('Время рекламы')
ax.set_xlabel('Заказчики')
ax.set_ylabel('Время рекламы')
plt.tick_params(axis='x',rotation=90)
plt.bar(df['CustomerName'], df['Showing'])
plt.tight_layout()
plt.show()
Рисунок 40 – График времени реклам
Построим график, демонстрирующий количество заключенных договоров относительно рейтинга программ. Код обработки и визуализации данных о количестве осмотров домов представлен в листинге 45. График популярности представлен на рисунке 41. Для компании этот график демонстрирует популярность их программ для заказа рекламы.
Листинг 45 – Код обработки и визуализации данных о количестве заключенных договоров относительно рейтинга программ
with connection.cursor() as cursor:
sql = "select tv_show.tv_rating as Rating, count(contract.tv_id) as CountOfContracts from tv_show, contract where contract.tv_id = tv_show.tv_id group by contract.tv_id order by Rating"
cursor.execute(sql)
rows = cursor.fetchall()
df = pd.DataFrame(rows)
connection.close()
print(df)
fig, ax = plt.subplots()
plt.title('Количество договоров относительно рейтинга программ')
ax.set_xlabel('Рейтинг')
ax.set_ylabel('Количество договоров')
plt.tick_params(axis='x',rotation=60)
plt.plot(df['Rating'], df['CountOfContracts'])
plt.tight_layout()
plt.show()
Рисунок 41 – График количества осмотров домов
