Python 有没有办法在matplotlib中的颜色映射上区分非零值?

Python 有没有办法在matplotlib中的颜色映射上区分非零值?,python,matplotlib,colormap,Python,Matplotlib,Colormap,我正在制作一个2d直方图,其值可以从0到大约100,但我希望1的值可以轻松地与0区分开来。有没有一个简单的方法来实现这一点?我知道您可以制作自定义贴图,但不确定是否有任何方法可以将0值设置为一种颜色,将其余值设置为简单的连续贴图。您可以为颜色贴图使用一种颜色,并将vmin设置为1。这样,所有值低于1的单元格都将使用“under”颜色进行着色。显示“下方”(和/或“上方”)颜色的extend=选项。默认使用一个小三角形extendrect=True将其显示为小矩形 如果您只想将零值留空,可以设置c

我正在制作一个2d直方图,其值可以从0到大约100,但我希望1的值可以轻松地与0区分开来。有没有一个简单的方法来实现这一点?我知道您可以制作自定义贴图,但不确定是否有任何方法可以将0值设置为一种颜色,将其余值设置为简单的连续贴图。

您可以为颜色贴图使用一种颜色,并将vmin设置为1。这样,所有值低于1的单元格都将使用“under”颜色进行着色。显示“下方”(和/或“上方”)颜色的
extend=
选项。默认使用一个小三角形
extendrect=True
将其显示为小矩形

如果您只想将零值留空,可以设置
cmin=1
,这将切断1以下的所有值

将numpy导入为np
将matplotlib.pyplot作为plt导入
导入副本
x=np.random.randn(10000).cumsum()
y=np.random.randn(2000,5).cumsum(axis=1).ravel()
图(ax1,ax2)=plt.子批次(ncols=2)
cmap=copy.copy(plt.get\u cmap('hot'))
cmap.set_位于(‘绿松石’)
_hist2d(x,y,bin=(50,30),cmap=cmap,vmin=1)
ax1.set_title($下使用$vmin$和$set_)
plt.colorbar(hist1,ax=ax1,extend='min',extendrect=True)
_hist2d(x,y,bin=(50,30),cmap='inferno',cmin=1)
ax2.set_title('使用$cmin$')
打印颜色条(历史2,ax=ax2)
plt.show()

欢迎来到SO。请包括最小可复制代码,以及在发布问题之前您尝试过如何解决此问题。这是否回答了您的问题?