Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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 相同颜色的散点图和等高线图_Python_Matplotlib_Colormap - Fatal编程技术网

Python 相同颜色的散点图和等高线图

Python 相同颜色的散点图和等高线图,python,matplotlib,colormap,Python,Matplotlib,Colormap,是否可以将plt.contourf和plt.contour强制分散成相同的颜色级别?例如,我有一段代码,可以绘制如下图: 要生成第一个子地块,我使用 cs=m[0].scatter(xs,ys,c=obsData,cmap=plt.cm.jet) m.colorbar(cs) 要生成第二个子图,我使用 cs2=m[1].contourf(x,y,areaData,cmap=cs.cmap) m[ind].contourf(x,y,areaData,cmap=cs.cmap,levels=c

是否可以将
plt.contourf
plt.contour
强制分散成相同的颜色级别?例如,我有一段代码,可以绘制如下图:

要生成第一个子地块,我使用

cs=m[0].scatter(xs,ys,c=obsData,cmap=plt.cm.jet)
m.colorbar(cs)
要生成第二个子图,我使用

cs2=m[1].contourf(x,y,areaData,cmap=cs.cmap)
m[ind].contourf(x,y,areaData,cmap=cs.cmap,levels=cs2.levels
对于每个后续子批次,我使用

cs2=m[1].contourf(x,y,areaData,cmap=cs.cmap)
m[ind].contourf(x,y,areaData,cmap=cs.cmap,levels=cs2.levels
其中areaData在循环中重新计算


我的问题是,如何强制第一个子图与其他子图具有相同的颜色?我正在寻找一个与
levels=cs2.levels
关键字参数等效的参数。

正如您在评论中所指出的,您的散射和等高线数据没有直接关系,但您希望将它们显示在同一颜色图上

我建议设置一个包含两组数据的通用颜色范围。由于
obsData
指的是散布点,而
areaData
指的是等高线,所以我将

vmin,vmax = (fun(np.concatenate([obsData,areaData])) for fun in (np.min,np.max))
确定收集的数据集的范围(显然,对于多个输入数据集是通用的)。这些可以传递到
scatter
tourtf
以设置颜色映射的限制:

cs = m[0].scatter(xs,ys,c=obsData,cmap=plt.cm.viridis,vmin=vmin,vmax=vmax)
cs2 = m[1].contourf(x,y,areaData,cmap=cs.cmap,vmin=vmin,vmax=vmax)
手动增加跨度可能是为了获得一个漂亮的结果


注意,我将颜色映射更改为
viridis
。如果您确实想公平地表示您的数据,.

散点图由
obsData
着色,而等高线图则根据
areaData
着色。sacatter图的值高于8,等高线值低于7。您确定这些数据对应于相同的数据集吗?否则,强制两者使用相同的颜色贴图是没有任何意义的。我遗漏了什么吗?它们不是来自同一个数据集,事实上,没有一个子地块来自同一个数据集。尽管存在这种差异,但obsData是模拟中观察到的误差数据,而areaData是包含模拟中因各种因素而产生的不确定性的数据。我想将误差与不确定度进行比较,但要正确地进行比较,需要均匀着色。