Home > database >  colormap from a matrix in python
colormap from a matrix in python

Time:09-25

I have a 2D output matrix (say, Z) which was calculated as a function of two variables x,y.

x varies in a non-uniform manner like [1e-5,5e-5,1e-4,5e-4,1e-3,5e-3,1e-2]

y varies in a uniform manner like [300,400,500,600,700,800]

[ say, Z = np.random.rand(7,6) ]

I was trying to plot a colormap of the matrix Z by first creating a meshgrid for x,y and then using the pcolormesh. Since, my x values are non-uniform, I do not kn ow how to proceed. Any inputs would be greatly appreciated.

CodePudding user response:

No need for meshgrids; regarding the non-uniform axes: In your case a log-scale works fine:

import numpy as np
from matplotlib import pyplot as plt

x = [1e-5,5e-5,1e-4,5e-4,1e-3,5e-3,1e-2]
y = [300,400,500,600,700,800]

# either enlarge x and y by one number (right-most
# endpoint for those bins), or make Z smaller as I did
Z = np.random.rand(6,5)

fig = plt.figure()
ax = fig.gca()

ax.pcolormesh(x,y,Z.T)
ax.set_xscale("log")
fig.show()
  • Related