我试图比较Naive 矩阵乘法和Strassen 的运行时间。为此,我记录了矩阵不同维度的运行时间。然后我试图将结果绘制在同一张图中进行比较。
但问题是绘图没有显示正确的结果。
- 这是数据...
2 3142 3 3531 4 4756 5 5781 6 8107
最左列表示n
,维度和最右列表示执行时间。
以上数据是针对Naive 方法的, Strassen的数据也是这种模式。
我将此数据插入到pandas 数据框。绘制数据后,图像如下所示:
这里蓝色代表Naive,绿色代表Strassen's 这当然不是真的,因为Naive不可能是恒定的。但是我的代码是正确的。所以我决定单独绘制它们,结果如下:
如您所见,这可能是因为 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()
但是没有运气!!!
如何在不改变实际方向的情况下将它们绘制在同一个图中?