我正在为数据生成一个热图。
一切正常,但我有一个小问题。我的数据(数字)从0到10.000。
0表示什么(无数据),此刻具有0的字段仅采用我的颜色标量中的最低颜色。我的问题是如何使数据为0以具有完全不同的颜色(例如黑色或白色)
请看图片以更好地理解我的意思:
我的代码(代码段)如下所示:
matplotlib.pyplot.imshow(results, interpolation='none')
matplotlib.pyplot.colorbar();
matplotlib.pyplot.xticks([0, 1, 2, 3, 4, 5, 6, 7, 8], [10, 15, 20, 25, 30, 35, 40, 45, 50]);
matplotlib.pyplot.xlabel('Population')
matplotlib.pyplot.yticks([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], [1, 2, 3, 4, 5, 10, 15, 20, 25, 30, 'serial']);
matplotlib.pyplot.ylabel('Communication Step');
axis.xaxis.tick_top();
matplotlib.pyplot.savefig('./results_' + optimisationProblem + '_dim' + str(numberOfDimensions) + '_' + statisticType + '.png');
matplotlib.pyplot.close();
如果你不是在值之间的平滑过渡兴趣0
和0.0001
,你可以设置每一个等于价值0
来NaN
。这将导致白色,而0.0001
仍将为白色deep blue-ish
。
在下面的代码中,我包括一个示例。我随机生成数据。因此,我从数组中选择一个元素并将其设置为NaN
。这导致白色。我还包括一条线,可以在其中设置等于每一个数据点0
来NaN
。
import numpy
import matplotlib.pyplot as plt
#Random data
data = numpy.random.random((10, 10))
#Set all data points equal to zero to NaN
#data[data == 0.] = float("NaN")
#Set single data value to nan
data[2][2] = float("NaN")
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.imshow(data, interpolation = "nearest")
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句