Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何缩放pyplot颜色条,以便在散射点中看到对比度?_Python_Matplotlib_Colorbar - Fatal编程技术网

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