我有两组数据要比较。 每组数据都有 x 和 y 值以及每个 x,y 点的一些 z 值。 两个数据集之间的 z 值分布可能相互重叠,但通常会有不重叠的部分。 在这种情况下 [1,4] 和 [2,6]。 我希望配色方案考虑到这一点,以便在比较两组时可以看到这些差异。 我最终也想使用添加到该图中的颜色条。 一些示例代码:

# Fake Values
vals1 = np.array([[1,1,1],[2,2,4]])
vals2 = np.array([[1,1,2],[2,2,6]])

fig, ax = plt.subplots(1,2, constrained_layout=True)
g1 = ax[0].scatter(x=vals1[:,0], y=vals1[:,1], c=vals1[:,2], cmap='RdBu')
g2 = ax[1].scatter(x=vals2[:,0], y=vals2[:,1], c=vals2[:,2], cmap='RdBu')
fig.colorbar(g2)

这给了我以下内容:

带有糟糕配色方案的散点图

如您所见,子图之间的 z (c?) 值未标准化。 任何帮助将不胜感激。

#1楼 票数:1 已采纳

您可以将两个图的vmin / vmax设置为数据的全局最小值/最大值。

单独设置vmin / vmax参数:

vmin = np.vstack([vals1,vals2]).min()
vmax = np.vstack([vals1,vals2]).max()

fig, ax = plt.subplots(1,2, constrained_layout=True)
g1 = ax[0].scatter(x=vals1[:,0], y=vals1[:,1], c=vals1[:,2], vmin=vmin, vmax=vmax, cmap='RdBu')
g2 = ax[1].scatter(x=vals2[:,0], y=vals2[:,1], c=vals2[:,2], vmin=vmin, vmax=vmax, cmap='RdBu')
fig.colorbar(g2)

或者创建一个matplotlib.colors.Normalize()实例并将其用于norm参数:

norm = mcolors.Normalize(
    vmin=np.vstack([vals1,vals2]).min(),
    vmax=np.vstack([vals1,vals2]).max(),
)

fig, ax = plt.subplots(1,2, constrained_layout=True)
g1 = ax[0].scatter(x=vals1[:,0], y=vals1[:,1], c=vals1[:,2], norm=norm, cmap='RdBu')
g2 = ax[1].scatter(x=vals2[:,0], y=vals2[:,1], c=vals2[:,2], norm=norm, cmap='RdBu')
fig.colorbar(g2)

同步 vmin/vmax

  ask by StephB translate from so

未解决问题?本站智能推荐:

2回复

将colorbar作为图例添加到matplotlib scatterplot(多个子图,多个散点图)

我有几个子图,我想添加一个颜色条。 每个子图由7个散点组成。 我发现了如何添加色块的建议,但它们主要与每个散点的值有关,而与行本身无关。 代表性示例代码: 上面的例子给出: 我想要的颜色条看起来像这样(假的,放在情节旁边): 因此,colorbar不会描绘散
2回复

在matplotlib中绘制多个y轴和颜色条

我正在尝试生成一个散点图,它有两个不同的y轴和一个颜色条。 这是使用的伪代码: #!/usr/bin/python import matplotlib.pyplot as plt from matplotlib import cm fig = plt.figure() ax1 = f
1回复

Pyplot用颜色绘制散布分布

我有三个形状相同的一维数组:数组A的取值范围是8.0到12.0,数组B的取值范围是0.5到2.0,数组C的取值范围是20到320。现在我要绘制散布分布:值在A作为x轴中,B作为y轴中的值,每个点的颜色都与C中的值相对应。 该地块显示为这个 ,但我更喜欢它显示像这样 。 我该如何实现?
1回复

在循环中绘图时如何获取颜色条

我正在通过在循环中一个接一个地绘制每个点来制作散点图: 因此,当我尝试创建颜色条时,它不能创建,因为我绘制的点不在数组中。 我尝试不在循环中绘制它,但它失败了,这是获得我想要的情节的最简单方法。 获得颜色条的方法是什么? 谢谢!
2回复

部分透明的散点图,但带有纯色条

在Python中,使用Matplotlib,如何简单地使用透明度(alpha <1)进行散点图,但使用颜色条表示其颜色值,但alpha = 1? 这是from pylab import *; scatter(range(10), arange(0, 100, 10), c=range
1回复

如何使用3D数据使颜色条显示设置限制

我已经找到了许多使用pcolor和clim等功能的示例,但是除非我滥用它们,否则它们似乎只希望使用带有x,y,值的二维数据。 我的数据格式如下: 在开始绘制脚本之前,我正在执行插值操作,该操作会为我提供新的网格化数据,但不会更改值的范围,这意味着在两个图形之间使用单个颜色条就足够了
2回复

离散颜色条缺少颜色

Matplotlibs离散色条在我的色彩图中缺少一种颜色定义,也用于图中。 在我的示例代码中,我有七种颜色,但颜色条只显示六种颜色,但创建色彩映射和颜色条的代码与我在互联网上找到的示例相似。 缺少标签为“180”的红色。 即使我改变了边界和刻度,也可以在颜色条中扩展米色或浅蓝色。
1回复

Matplotlib 颜色图从透明

我是 Python 的新手,我真的很难为我的数据获得合理的颜色图。 我正在绘制 29x29 numpy 数组,其中大多数单元格为 0,但平均大约 10-15 个单元格具有非零值,其范围可以从低 10 秒到几个 1000 秒。 在 C++ ROOT 中,你会自动得到一个漂亮的图,它有一个白色的背景