编程语言
首页 > 编程语言> > python-Matplotlib散点图过滤器颜色(Colorbar)

python-Matplotlib散点图过滤器颜色(Colorbar)

作者:互联网

我有一些数据,可以说x,y和z.所有都是一维数组.我用z作为颜色绘制了散点图;

 import matplotlib.pyplot as plt
 plt.scatter(x,y,c=z,alpha = 0.2)
 plt.xlabel("X")
 plt.ylabel("Y")
 plt.ylim((1.2,1.5))
 plt.colorbar() 

z值已归一化,且介于-1到1之间.我已附上下图.

我的问题是;我该如何过滤颜色,以使颜色值介于-0.25到0.25之间的点从图形中消失(即,将颜色设置为白色).

   

如果需要回答此问题,可以提供x,y和z的值.感谢您的时间.

解决方法:

import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)

# prepare random data
stats = -1, 1, 200
x = np.random.uniform(*stats)
y = np.random.uniform(*stats)
z = np.random.uniform(*stats)

# mask unwanted data
thresh = 0.4
mask = np.abs(z) <= thresh
x_ma = np.ma.masked_where(mask, x)
y_ma = np.ma.masked_where(mask, y)
z_ma = np.ma.masked_where(mask, z)

并作图:

fig, (ax_left, ax_right) = plt.subplots(1, 2, figsize=(10, 4),
                                        sharex=True, sharey=True)
img_left = ax_left.scatter(x, y, c=z)
fig.colorbar(img_left, ax=ax_left)
img_right = ax_right.scatter(x_ma, y_ma, c=z_ma)
fig.colorbar(img_right, ax=ax_right)

给出以下结果:

右侧的图将隐藏所有低于所选阈值的点.

标签:scatter-plot,python,matplotlib
来源: https://codeday.me/bug/20191009/1880257.html