Python/Matplotlib-为同一图形上的多个散点图设置颜色栏

Python/Matplotlib-为同一图形上的多个散点图设置颜色栏,python,matplotlib,scatter-plot,Python,Matplotlib,Scatter Plot,我正在使用Python和Matplotlib向一个图形添加数量可变的散点图。每个散点图都是一个系列,我想通过它们的序列索引号为每个散点图的点上色。但是,由于序列的长度不同,我希望所有序列都有一个一致的颜色条 我可以跟踪最小和最大序列长度。但是我如何使用这些信息来配置颜色条来表示这个完整的范围呢?从这个问题来看,数据的外观并不完全清楚。 下面是一个使用4个不同长度的序列的示例,所有序列都具有索引0,1,2,3,…。散点绘制索引与值的关系,并使用完整的颜色范围为每个系列着色 建议是在没有太多色条的情

我正在使用Python和Matplotlib向一个图形添加数量可变的散点图。每个散点图都是一个系列,我想通过它们的序列索引号为每个散点图的点上色。但是,由于序列的长度不同,我希望所有序列都有一个一致的颜色条


我可以跟踪最小和最大序列长度。但是我如何使用这些信息来配置颜色条来表示这个完整的范围呢?

从这个问题来看,数据的外观并不完全清楚。 下面是一个使用4个不同长度的序列的示例,所有序列都具有索引
0,1,2,3,…
。散点绘制索引与值的关系,并使用完整的颜色范围为每个系列着色

建议是在没有太多色条的情况下,为每个系列添加一个色条。每个颜色栏都有一个标题,并根据用于该系列的范围显示刻度。使色条(第一个除外)非常窄使它们看起来像一把额外的斧头

将numpy导入为np
作为pd进口熊猫
从matplotlib导入pyplot作为plt
N=4
系列图=范围(1,N+1)内的i的pd.系列(np.random.uniform(i,i+0.8,np.random.randint(50400))]
names=[f'data{i}'表示范围(1,N+1)内的i]
图,ax=plt.子批次(图尺寸=(12,5))
对于枚举(zip(系列图到系列图,名称))中的ind,(ser,name):
散射=最大散射(ser.index,ser,c=ser.index,s=1,cmap='plasma')
cax=图添加_轴(
[1-(N-ind)*0.05,0.1,0.01如果ind==0,则为0.002,0.75])#左、下、宽、高,其中1,1为图的右上角
cbar=图颜色条(scat,cax=cax)
cax.set_标题(名称)
plt.子图_调整(右=0.97-N*0.05)#为色条留出空间
plt.show()

将相同的vmin和vmax传递给每个分散调用