matplotlib中的常量色彩映射。

时间:2016-02-24 19:44:58

标签: python matplotlib plot colormap

我有一个很好的两个参数Lyapunov Diagram,我正在使用matplotlib进行绘图。这些图需要相当长的时间才能运行,因此为了在短时间内运行,必须在准确性上妥协。因此,我的"零"介于-0.05和+0.05之间。因此,当我生成图像时,我希望它在-0.05和0.05之间的值为黑色。以下是我到目前为止的尝试。我目前正在使用colormap'标记'零,但我对它不是很满意。

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as mcolors

from numpy import *

dataZ = np.loadtxt("Lyapunov.txt")
dataZ = dataZ[::-1,:]

dataX = np.linspace(0,100,200)
dataY = np.linspace(-110, 110, 200)

X, Y = np.meshgrid(dataX, dataY)

#So we have dataZmin to -0.05 then -0.05 to 0.05 then 0.05 to dataZmax

dZmin = dataZ.min()
dZmax = dataZ.max()

d1 = -0.05 - dZmin
d2 = 0.05 - -0.05
d3 = dZmax - 0.05

dd = 0.1

N1 = int(d1/dd)
N2 = int(d2/dd)
N3 = int(d3/dd)


# sample the colormaps that you want to use. Use 128 from each so we get 256
# colors in total
colors3 = plt.cm.gnuplot(np.linspace(0, 1, N3))
colors2 = plt.cm.flag(np.linspace(0, 1, N2))
colors1 = plt.cm.YlGnBu(np.linspace(0, 1, N1))

# combine them and build a new colormap
colors = np.vstack((colors1, colors2, colors3))
mymap = mcolors.LinearSegmentedColormap.from_list('my_colormap', colors)

plt.imshow(dataZ, cmap=mymap)
plt.colorbar()
plt.show()

对于那些感兴趣的人是图表。如果有人想要更好的配色方案,我很乐意知道。

enter image description here

感谢。

1 个答案:

答案 0 :(得分:1)

您可以制作自己的自定义颜色贴图。如果要将颜色指定为特定值,这非常有用。

请参阅官方matplotlib example

还有一个问题here可能有所帮助。