Я использовал приведенный ниже код для построения графика времени, затрачиваемого на выполнение 4 функций. Ось x представляет количество выполнений, тогда как ось y представляет время, затраченное на выполнение функции.
Мне было интересно, не могли бы вы помочь мне выполнить следующее:
1) установите пределы оси x так, чтобы отображались только положительные значения (x представляет количество раз, когда каждая функция выполнялась, и поэтому всегда положительна)
2) создать легенду для 4 функций
Спасибо,
Отметка
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)
ax.set_xlim(..)
, а неax.xlim
. Кроме того, вам не нужен разброс для того, что вы делаете в этом конкретном случае.plot
будет иметь больше смысла. Разброс предназначен для изменения цветов и/или размеров маркеров с помощью 3-й и/или 4-й переменной. В вашем случаеax.plot(r.run, r.function1, 'o', color='whatever')
будет иметь больше смысла. - person Joe Kington   schedule 11.09.2011