项目欧拉和其他编码竞赛通常有最长的运行时间或人们吹嘘他们的特定解决方案运行的速度.使用python,有时候这些方法有点像kludgey - 即添加时间码__main__.
分析python程序运行多长时间的好方法是什么?
我想用Python matplotlib创建包含许多(100)子图的绘图.我找不到合适的语法:
我想要的东西(这不起作用)
plt.subplot(10,10,i,X1, Y)
Run Code Online (Sandbox Code Playgroud)
在一个循环中,i从0到99,然后
plt.show()
Run Code Online (Sandbox Code Playgroud)
许多教程中都提供了语法,以便只有很少的子图.然后,语法可以
plt.close('all')
fig = plt.figure()
ax1 = plt.subplot(221)
ax2 = plt.subplot(223)
ax3 = plt.subplot(122)
example_plot(ax1)
example_plot(ax2)
example_plot(ax3)
plt.tight_layout()
Run Code Online (Sandbox Code Playgroud)
对于我的问题,我想我不能使用与我一样的语法plt.subplot(10101),等等,我不明白.
你有解决方案吗?
谢谢
我正在使用matplotlib创建一个包含许多小子图(如4行,8列)的图形.我已经尝试了几种不同的方法,而且我能用matplotlib来制作轴的最快速度是~2秒.我看到这篇文章关于只使用一个轴对象来显示许多小图像,但我希望能够在轴上有刻度和标题.有没有办法加速这个过程,或者在matplotlib中制作轴只需要相当长的时间?
这是我到目前为止所尝试的:
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import ImageGrid
import time
fig = plt.figure(figsize=(10,6))
plt.clf(); t = time.time()
grid = ImageGrid(fig, 111,
nrows_ncols = (4, 8))
print 'Time using ImageGrid: %.2f seconds'%(time.time()-t)
plt.clf(); t = time.time()
axes = plt.subplots(4,8)
print 'Time using plt.subplots: %.2f seconds'%(time.time()-t)
plt.clf(); t = time.time()
axes = []
for row in range(0,4):
for col in range(1,9):
ax = plt.subplot(4,8,row*8+col)
axes.append(ax)
print 'Time using ptl.subplot loop: %.2f seconds'%(time.time()-t)
Run Code Online (Sandbox Code Playgroud)
输出:
Time using ImageGrid: 4.25 seconds …Run Code Online (Sandbox Code Playgroud)