rango de eje en gráficos de dispersión

He estado usando el siguiente código para trazar el tiempo dedicado a ejecutar 4 funciones. El eje x representa el número de ejecuciones, mientras que el eje y representa el tiempo dedicado a ejecutar una función.

Me preguntaba si podría ayudarme a lograr lo siguiente:

1) establezca los límites del eje x de modo que solo se muestren los valores positivos (x representa el número de veces que se ejecutó cada función y, por lo tanto, siempre es positiva)

2) crea una leyenda para las 4 funciones

Gracias

Marc

import matplotlib
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
import matplotlib.mlab as mlab


r = mlab.csv2rec('performance.csv')

fig = Figure(figsize=(9,6))

canvas = FigureCanvas(fig)

ax = fig.add_subplot(111)

ax.set_title("Function performance",fontsize=14)

ax.set_xlabel("code executions",fontsize=12)

ax.set_ylabel("time(s)",fontsize=12)

ax.grid(True,linestyle='-',color='0.75')

ax.scatter(r.run,r.function1,s=10,color='tomato');
ax.scatter(r.run,r.function2,s=10,color='violet');
ax.scatter(r.run,r.function3,s=10,color='blue');
ax.scatter(r.run,r.function4,s=10,color='green');

canvas.print_figure('performance.png',dpi=700)

Respuestas a la pregunta(1)

Su respuesta a la pregunta