0

当我编写这个程序时,我首先尝试使用 matlab,然后使用 gnu octave,但他们无法做到。所以我用python为它编写了自己的脚本:

from pylab import *
f, ax = plt.subplots(1)
xdata = [256, 512, 1024, 2048]
labels = [256, 512, 1024, 2048]

ydata = [1, 1, 30, 150]
plt.xscale('log', basex=2)
plt.yscale('log', basey=2)
ax.scatter(xdata, ydata)

y2data = [1, 1, 30, 150]
ax.scatter(xdata, y2data, marker='x')
x3data = [256, 512]
y3data = [29, 140]
ax.scatter(x3data, y3data, marker='d')
plt.xticks(xdata, labels, rotation='vertical')

f.suptitle('Benchmark results', fontsize=20)
plt.xlabel('memory (bytes)', fontsize=18)
plt.ylabel('time (seconds)', fontsize=16)
plt.show(f)

该图看起来不错(但我不得不调整它的大小以显示底部的文本)。

在此处输入图像描述

现在对于垂直指数/对数轴,我想像水平轴一样用十进制表示法来写它。可以做到吗?

而不是“2²”,我想简单地说 4。

4

1 回答 1

1

为什么不对水平轴做同样的事情呢?手动创建标签列表,然后使用 plt.yticks 设置它,并输入完整的数字而不是 2 的幂。

于 2017-07-06T19:21:12.570 回答