Самый простой, самый последовательный способ сделать это - создать точечную диаграмму для каждого алгоритма.Кроме того, вы, вероятно, хотите использовать объектно-ориентированный интерфейс для этого.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
def calculate_runtimes(algo, data, sizes):
if algo == 'name1':
# return timings for algorithm 1 given data at given sizes
elif algo == 'name2':
# ...
algo_labels = ['name1', 'name2', 'name3', 'name4', 'name5']
sizes = [1, 2, 4, 8, 16]
algo_runtimes = {name: calculate_runtimes(name, dataset, sizes) for name in algo_labels}
colors = ['red', 'green', 'blue', 'yellow', 'black']
x_positions = [len(dataset)*size for size in sizes]
for (label, runtimes), color in zip(algo_runtimes.items(), colors):
ax.scatter(x_positions, runtimes, color=color, label=label)
ax.legend()