Python 如何缩放pyplot颜色条,以便在散射点中看到对比度?
我正在用Python 如何缩放pyplot颜色条,以便在散射点中看到对比度?,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,我正在用x和y值绘制散点图,并使用z数组定义点颜色,如下所示: plt.散射(x,y,c=z) 但是,max(z)~110,但平均(z)~20。因此,由于大多数z值在或以下,但最大值在100左右,因此大多数点看起来都是深蓝色的,很难区分它们之间的区别 我尝试使用对数颜色条,但由于我的z范围几乎完全在10-100之间,因此它几乎没有什么帮助: 有没有一种方法可以将正常的颜色比例提高到某个值?例如,将颜色条从10-40的蓝色变为红色,然后将上面的所有颜色都变为红色?试试以下方法: plt.scat
x
和y
值绘制散点图,并使用z
数组定义点颜色,如下所示:
plt.散射(x,y,c=z)
但是,max(z)~110
,但平均(z)~20
。因此,由于大多数z
值在或以下,但最大值在100左右,因此大多数点看起来都是深蓝色的,很难区分它们之间的区别
我尝试使用对数颜色条,但由于我的z
范围几乎完全在10-100之间,因此它几乎没有什么帮助:
有没有一种方法可以将正常的颜色比例提高到某个值?例如,将颜色条从10-40的蓝色变为红色,然后将上面的所有颜色都变为红色?试试以下方法:
plt.scatter(x, y, c = z, vmin=10, vmax=40)
可以使用matplotlib颜色栏上的
extend
参数作为
plt.scatter(x, y, c = z, vmin=10, vmax=40)
plt.colorbar(extend="max")
有关详细示例,请查看。是否有
clim
参数?此类参数有效。它用z=40
深红色标记点,但它没有;t在颜色栏上显示大于40的值。我希望它仍然显示整个范围,但红色从~40延伸到最大值。理想情况下,我只需要一些颜色条刻度,开始时变化很快,而对于较高的z
,则变化更慢。很明显,对数刻度通常是可行的,但如果范围在~10-~100之间,则效果很小。我可以对原木秤进行任何替代或操作吗?谢谢,我想这已经足够好了。我最终使用了10-40的对数刻度,然后使用这个extend
arg。为此,我没有直接传递vmin
和vmax
,而是创建了一个类似这样的对象:matplotlib.colors.LogNorm(vmin=10,vmax=40)
,并将其作为norm
arg传递给scatter