pingpong/data/graphic_with_bloxplot.py

35 lines
1.2 KiB
Python

import matplotlib.pyplot as plt
import numpy as np
# Lista de valores para os eixos x e y
tamanho_buffer = ["0.064", "0.128", "0.256", "0.512", "1", "2", "4", "8"]
tempo_execucao_udp = [0.28, 0.24, 0.19, 0.17, 0.15, 0.14, 0.12, 0.09]
tempo_execucao_tcp = [0.40, 0.23, 0.20, 0.18, 0.17, 0.16, 0.16, 0.13]
tempo_execucao_unix = [0.22, 0.19, 0.19, 0.12, 0.15, 0.10, 0.08, 0.05]
tempo_execucao_udp.reverse()
tempo_execucao_tcp.reverse()
tempo_execucao_unix.reverse()
# Cria o gráfico de linha
plt.plot(tamanho_buffer, tempo_execucao_tcp, marker='o', linestyle='-', label='Socket TCP')
plt.plot(tamanho_buffer, tempo_execucao_unix, marker='o', linestyle='-', label='Socket UNIXDOMAIN')
plt.plot(tamanho_buffer, tempo_execucao_udp, marker='o', linestyle='-', label='Socket UDP')
# Box plots
plt.boxplot([tempo_execucao_tcp, tempo_execucao_unix, tempo_execucao_udp], labels=['TCP', 'UNIXDOMAIN', 'UDP'])
plt.yscale('log')
ticks_y = [0.01, 0.1, 1, 10]
plt.yticks(ticks_y, [f'$10^{{{int(np.log10(val))}}}$' for val in ticks_y])
plt.xlabel('Tamanho do buffer em (KB)')
plt.ylabel('Tempo de execução em (ms)')
plt.title('Desempenho de conexões UDP, TCP e UNIXDOMAIN')
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.legend()
plt.show()