Я пытался сравнить время выполнения между Умножением наивной матрицы и Штрассена . Для этого я записывал время выполнения для другого измерения матриц. Затем я пытался отобразить результат на том же графике для сравнения.
Но проблема в том, что изображение не показывает правильный результат.
- Вот данные ...
2 3142
3 3531
4 4756
5 5781
6 8107
Крайний левый столбец обозначает n
, размерность и крайний правый столбец обозначает время выполнения.
Приведенные выше данные относятся к Наивному методу , а данные для Штрассен тоже относятся к этому шаблону.
Я вставляю эти данные в pandas dataframe . И после нанесения данных изображение выглядит так:
Здесь синий означает Наивный , а зеленый - Штрассена
Это, безусловно, неверно, поскольку Naive не может быть постоянным. Но мой код был верным. Поэтому я решил построить их отдельно, и вот результат:
Наивная
Strassen
Как вы можете видеть, это может произойти, потому что масштабирование по оси Y не то же самое?
Это причина?
Код, который я реализую для построения графиков:
fig = plt.figure()
data_naive = pd.read_csv('naive.txt', sep="\t", header=None)
data_naive.columns = ["n", "time"]
plt.plot(data_naive['n'], data_naive['time'], 'g')
data_strassen = pd.read_csv('strassen.txt', sep="\t", header=None)
data_strassen.columns = ["n", "time"]
plt.plot(data_strassen['n'], data_strassen['time'], 'b')
plt.show()
fig.savefig('figure.png')
Что я пытался отработать?
fig = plt.figure()
data_naive = pd.read_csv('naive.txt', sep="\t", header=None)
data_naive.columns = ["n", "time"]
data_strassen = pd.read_csv('strassen.txt', sep="\t", header=None)
data_strassen.columns = ["n", "time"]
ax = data_naive.plot(x='n', y='time', c='blue', figsize=(20,10))
data_strassen.plot(x='n', y='time', c='green', figsize=(20,10), ax=ax)
plt.savefig('comparison.png')
plt.show()
Но не повезло !!!
Как изобразить их на одной фигуре, не изменяя их фактической ориентации?