patternpythonMinor
Plotting many images at once in matplotlib
Viewed 0 times
onceplottingmatplotlibmanyimages
Problem
I am using numpy and matplotlib to do a statistical simulation. The simulation itself is pretty fast thanks to numPy vectorizatio, however the plotting is slow since I still use a
Here is the result:
Right now, I call
Let's say I stored all the varaibles in an numPy array
How do I reduce the number of calls to
for loop.Here is the result:
Right now, I call
matplotlib.pyplot.plt 10000 times - once for each tile in 100 × 100 square which can't possibly be optimal, but I can't think of how to do it better:N = 100
for x in range(N):
for y in range(N):
plt.fill( myPath[x,y,0] ,myPath[x,y,1])Let's say I stored all the varaibles in an numPy array
myPath with shape (N,N,2,4) so that myPath[x,y,0] and myPath[x,y,1] give the x and y coordinates of the path.How do I reduce the number of calls to
plt in my visualization?Solution
Try using matplotlib's
In your case, you might do:
LineCollection class. Here's an example.In your case, you might do:
from matplotlib import pyplot as plt
from matplotlib.collections import LineCollection
ax = plt.gca()
pts = myPath.reshape((-1,2)) # make a matrix of (x,y) pairs
edges = LineCollection(pts)
ax.add_collection(edges)
plt.show()Code Snippets
from matplotlib import pyplot as plt
from matplotlib.collections import LineCollection
ax = plt.gca()
pts = myPath.reshape((-1,2)) # make a matrix of (x,y) pairs
edges = LineCollection(pts)
ax.add_collection(edges)
plt.show()Context
StackExchange Code Review Q#52311, answer score: 4
Revisions (0)
No revisions yet.