当用颜色填充网格时,例如在pyplot中使用contourf时,我需要找到一种方法来更改pyplot用来填充超出颜色栏指定范围的数据的颜色。我希望有一个静态颜色条,它不会自动更改其范围以适应数据的最大值/最小值,因此偶尔会有超出其界限的极端值是不可避免的,并且需要为这些值指定颜色。超出颜色条边界的值的默认颜色是白色,如果颜色图没有白色作为其结束颜色,它可能会与周围的数据发生明显的冲突。示例图像如下所示-当值超出颜色栏的负值范围时,请注意白色填充:我相信有一种方法可以指定在每个边界使用哪种颜色,如果使用rcParams超出它们,但我无法在任何地方找到有关此的信息。任何帮助将不胜感激。
这应该很容易,但我很难做到。基本上,我在matplotlib中有一个子图,每次调用函数时我都会绘制一个hexbin图,但是每次调用该函数时,我都会得到一个新的颜色条,所以我真正想做的是更新颜色条.不幸的是,这似乎不起作用,因为颜色条所附加的对象正在由subplot.hexbin重新创建。deffoo(self):self.subplot.clear()hb=self.subplot.hexbin(...)ifself.cb:self.cb.update_bruteforce()#Doesn'twork(hbisnew)else:self.cb=self.figure.colorbar(
这应该很容易,但我很难做到。基本上,我在matplotlib中有一个子图,每次调用函数时我都会绘制一个hexbin图,但是每次调用该函数时,我都会得到一个新的颜色条,所以我真正想做的是更新颜色条.不幸的是,这似乎不起作用,因为颜色条所附加的对象正在由subplot.hexbin重新创建。deffoo(self):self.subplot.clear()hb=self.subplot.hexbin(...)ifself.cb:self.cb.update_bruteforce()#Doesn'twork(hbisnew)else:self.cb=self.figure.colorbar(
默认情况下,matplotlib会将颜色条标签放置在垂直颜色条旁边。强制标签位于颜色条顶部的最佳方法是什么?目前我的解决方案需要根据标签的大小调整labelpad和y值:importnumpyasnpimportmatplotlib.pylabaspltdat=np.random.randn(10,10)plt.imshow(dat,interpolation='none')clb=plt.colorbar()clb.set_label('label',labelpad=-40,y=1.05,rotation=0)plt.show()有没有更好、更通用的方法来做到这一点?
默认情况下,matplotlib会将颜色条标签放置在垂直颜色条旁边。强制标签位于颜色条顶部的最佳方法是什么?目前我的解决方案需要根据标签的大小调整labelpad和y值:importnumpyasnpimportmatplotlib.pylabaspltdat=np.random.randn(10,10)plt.imshow(dat,interpolation='none')clb=plt.colorbar()clb.set_label('label',labelpad=-40,y=1.05,rotation=0)plt.show()有没有更好、更通用的方法来做到这一点?
我想为2x2图中的每个子图添加一个单独的颜色条。fig,((ax1,ax2),(ax3,ax4))=plt.subplots(2,2,sharex=True,sharey=True)z1_plot=ax1.scatter(x,y,c=z1,vmin=0.0,vmax=0.4)plt.colorbar(z1_plot,cax=ax1)z2_plot=ax2.scatter(x,y,c=z2,vmin=0.0,vmax=40)plt.colorbar(z1_plot,cax=ax2)z3_plot=ax3.scatter(x,y,c=z3,vmin=0.0,vmax=894)plt.col
我想为2x2图中的每个子图添加一个单独的颜色条。fig,((ax1,ax2),(ax3,ax4))=plt.subplots(2,2,sharex=True,sharey=True)z1_plot=ax1.scatter(x,y,c=z1,vmin=0.0,vmax=0.4)plt.colorbar(z1_plot,cax=ax1)z2_plot=ax2.scatter(x,y,c=z2,vmin=0.0,vmax=40)plt.colorbar(z1_plot,cax=ax2)z3_plot=ax3.scatter(x,y,c=z3,vmin=0.0,vmax=894)plt.col
我正在尝试使用matplotlib为我的图像添加一个颜色条。当我尝试强制以科学记数法编写刻度标签时,问题就来了。如何在颜色条的刻度中强制使用科学记数法(即1x10^0、2x10^0、...、1x10^2等)?例如,让我们用它的颜色条创建和绘制图像:importmatplotlibasplotimportnumpyasnpimg=np.random.randn(300,300)myplot=plt.imshow(img)plt.colorbar(myplot)plt.show()当我这样做时,我得到以下图像:但是,我希望看到科学记数法的刻度标签...有没有任何一行命令可以做到这一点?否则
我正在尝试使用matplotlib为我的图像添加一个颜色条。当我尝试强制以科学记数法编写刻度标签时,问题就来了。如何在颜色条的刻度中强制使用科学记数法(即1x10^0、2x10^0、...、1x10^2等)?例如,让我们用它的颜色条创建和绘制图像:importmatplotlibasplotimportnumpyasnpimg=np.random.randn(300,300)myplot=plt.imshow(img)plt.colorbar(myplot)plt.show()当我这样做时,我得到以下图像:但是,我希望看到科学记数法的刻度标签...有没有任何一行命令可以做到这一点?否则
当使用带有等高线图的matplotlib时,我无法让颜色条按我的意愿显示。我已经阅读了许多类似的例子,但仍然无法得到我想要的。在下图中,我想要改变两件事。我希望在彩条上显示最小值和最大值(最大值应该是2.0,最小值应该是-0.1)。这两个值应该在颜色条的最边缘。另外,我希望颜色条在每次颜色转换时显示值。例如。在下图中,在2.1和1.8之间,还有另一个颜色过渡,其中没有显示值。谁能帮帮我?我想我可能需要使用norm,但到目前为止它对我没有用。谢谢,代码:importnumpyasnpimportmatplotlib.pyplotaspltxi=np.array([0.,0.5,1.0])