python - diverging - matplotlib title position
Mapa de color Matplotlib de Python (3)
Probablemente debería haber una solución más fácil, pero la forma en que me di cuenta es creando tu propio matplotlib.colors.LinearSegmentedColormap, basado en el "jet".
(El nivel más bajo de su mapa de colores se define en la primera línea de cada tupla de rojo, verde y azul, por lo que comienza la edición. Agrego una tupla adicional para tener una mancha claramente blanca en la parte inferior. cada color, en el primer elemento de la tupla indica la posición en su barra de color (de 0 a 1), y en el segundo y tercero el color mismo).
from matplotlib.pyplot import *
import matplotlib
import numpy as np
cdict = {''red'': ((0., 1, 1),
(0.05, 1, 1),
(0.11, 0, 0),
(0.66, 1, 1),
(0.89, 1, 1),
(1, 0.5, 0.5)),
''green'': ((0., 1, 1),
(0.05, 1, 1),
(0.11, 0, 0),
(0.375, 1, 1),
(0.64, 1, 1),
(0.91, 0, 0),
(1, 0, 0)),
''blue'': ((0., 1, 1),
(0.05, 1, 1),
(0.11, 1, 1),
(0.34, 1, 1),
(0.65, 0, 0),
(1, 0, 0))}
my_cmap = matplotlib.colors.LinearSegmentedColormap(''my_colormap'',cdict,256)
pcolor(np.random.rand(10,10),cmap=my_cmap)
colorbar()
show()
Obtendrás lo siguiente:
Uso el mapa de colores "jet" para trazar mis gráficos. Pero, me gustaría tener los valores más bajos en color blanco y este mapa de colores va de azul a rojo. Tampoco quiero usar otro mapa de colores porque necesito esta gama de colores ... Intenté hacer que mi mapa de colores obtuviera el mismo resultado que "jet" con un rango de valores en blanco, pero esto es muy difícil. Alguien podría ayudarme por favor? Gracias
Hay otra forma de hacer lo mismo sin definir un nuevo colobar. Puede usar el método cmap.set_under que define el color que se utilizará para todos los valores por debajo de un umbral determinado. El umbral se define durante la pcolormesh:
from matplotlib.pyplot import *
import numpy as np
mycmap = cm.get_cmap(''jet'')
mycmap.set_under(''w'')
pcolor(np.random.rand(10,10), cmap=mycmap, vmin=.1)
colorbar()
show()
Este es un buen ejemplo en la página de mapas de color . Excavando a través de la fuente de matplotlib
en mi máquina, jet se define como (en _cm.py
):
_jet_data = {''red'': ((0., 0, 0), (0.35, 0, 0), (0.66, 1, 1), (0.89,1, 1),
(1, 0.5, 0.5)),
''green'': ((0., 0, 0), (0.125,0, 0), (0.375,1, 1), (0.64,1, 1),
(0.91,0,0), (1, 0, 0)),
''blue'': ((0., 0.5, 0.5), (0.11, 1, 1), (0.34, 1, 1), (0.65,0, 0),
(1, 0, 0))}