Opciones de Python Pylab pcolor para gráficos de calidad de publicación

Estoy tratando de hacer gráficos DFT (transformadas de Fourier discretas) usando pcolor en python. Anteriormente he estado usando Mathematica 8.0 para hacer esto, pero me parece que la barra de colores en matemática 8.0 tiene una mala correlación de uno a uno con los datos que trato de representar. Por ejemplo, aquí están los datos que estoy trazando:

 [[0.,0.,0.10664,0.,0.,0.,0.0412719,0.,0.,0.], [0.,0.351894,0.,0.17873,0.,0.,0.,0.,0.,0.], [0.10663,0.,0.178183,0.,0.,0.,0.0405148,0.,0.,0.], [0.,0.177586,0.,0.,0.,0.0500377,0.,0.,0.,0.], [0.,0.,0.,0.,0.0588906,0.,0.,0.,0.,0.], [0.,0.,0.,0.0493811,0.,0.,0.,0.,0.,0.], [0.0397341,0.,0.0399249,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.]] 

Por lo tanto, son muchos ceros o pequeños números en una matriz DFT o una pequeña cantidad de energías de alta frecuencia.

Cuando grafico esto utilizando mathica, este es el resultado:

Trama de DFT con matemática 8.0

La barra de colores está desactivada y pensé que me gustaría trazar esto con Python en su lugar. Mi código de python (que secuestré desde aquí ) es:

     from numpy import corrcoef, sum, log, arange from numpy.random import rand #from pylab import pcolor, show, colorbar, xticks, yticks from pylab import * data = np.array([[0.,0.,0.10664,0.,0.,0.,0.0412719,0.,0.,0.], [0.,0.351894,0.,0.17873,0.,0.,0.,0.,0.,0.], [0.10663,0.,0.178183,0.,0.,0.,0.0405148,0.,0.,0.], [0.,0.177586,0.,0.,0.,0.0500377,0.,0.,0.,0.], [0.,0.,0.,0.,0.0588906,0.,0.,0.,0.,0.], [0.,0.,0.,0.0493811,0.,0.,0.,0.,0.,0.], [0.0397341,0.,0.0399249,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.]], np.float) pcolor(data) colorbar() yticks(arange(0.5,10.5),range(0,10)) xticks(arange(0.5,10.5),range(0,10)) #show() savefig('/home/mydir/foo.eps',figsize=(4,4),dpi=100) 

    Y este código de python grafica como:

    Parcela DFT en python con pcolor

    Ahora aquí está mi pregunta / lista de preguntas: Me gusta cómo Python traza esto y me gustaría usar esto pero …

    1. ¿Cómo puedo hacer que todo el “azul” que representa el “0” desaparezca como lo hace en mi ttwig matemática?
    2. ¿Cómo puedo rotar el gráfico para tener el punto rojo shiny en la esquina superior izquierda?
    3. La forma en que configuro el “dpi”, ¿es correcto?
    4. ¿Alguna referencia útil que deba usar para fortalecer mi amor por Python?

    He revisado otras preguntas aquí y el manual del usuario para el número, pero no he encontrado mucha ayuda.

    Planeo publicar estos datos, ¡y es bastante importante que consiga todas las partes correctas! :)

    Editar:

    Código de python modificado y la ttwig resultante! ¿Qué mejoras se sugerirían a esto para que sea digna de publicación?

     from numpy import corrcoef, sum, log, arange, save from numpy.random import rand from pylab import * data = np.array([[0.,0.,0.10664,0.,0.,0.,0.0412719,0.,0.,0.], [0.,0.351894,0.,0.17873,0.,0.,0.,0.,0.,0.], [0.10663,0.,0.178183,0.,0.,0.,0.0405148,0.,0.,0.], [0.,0.177586,0.,0.,0.,0.0500377,0.,0.,0.,0.], [0.,0.,0.,0.,0.0588906,0.,0.,0.,0.,0.], [0.,0.,0.,0.0493811,0.,0.,0.,0.,0.,0.], [0.0397341,0.,0.0399249,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.], [0.,0.,0.,0.,0.,0.,0.,0.,0.,0.]], np.float) v1 = abs(data).max() v2 = abs(data).min() pcolor(data, cmap="binary") colorbar() #xlabel("X", fontsize=12, fontweight="bold") #ylabel("Y", fontsize=12, fontweight="bold") xticks(arange(0.5,10.5),range(0,10),fontsize=19) yticks(arange(0.5,10.5),range(0,10),fontsize=19) axis([0,7,0,7]) #show() savefig('/home/mydir/Desktop/py_dft.eps',figsize=(4,4),dpi=600) 

    Diagrama DFT de salida del código de Python mejorado

    Lo siguiente te acercará a lo que quieres:

     import matplotlib.pyplot as plt plt.pcolor(data, cmap=plt.cm.OrRd) plt.yticks(np.arange(0.5,10.5),range(0,10)) plt.xticks(np.arange(0.5,10.5),range(0,10)) plt.colorbar() plt.gca().invert_yaxis() plt.gca().set_aspect('equal') plt.show() 

    La lista de mapas de colores disponibles por defecto está aquí . Necesitarás uno que comience en blanco.

    introduzca la descripción de la imagen aquí

    Si ninguno de ellos se adapta a sus necesidades, puede intentar generar el suyo propio, comience mirando LinearSegmentedColormap .

    Sólo para el registro, en Mathematica 9.0:

     GraphicsGrid@{{MatrixPlot[l, ColorFunction -> (ColorData["TemperatureMap"][Rescale[#, {Min@l, Max@l}]] &), ColorFunctionScaling -> False], BarLegend[{"TemperatureMap", {0, Max@l}}]}} 

    introduzca la descripción de la imagen aquí