Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.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 “更改面部颜色”;阿尔法“;值提供不需要的边(matplotlib pcolormesh)_Python_Matplotlib - Fatal编程技术网

Python “更改面部颜色”;阿尔法“;值提供不需要的边(matplotlib pcolormesh)

Python “更改面部颜色”;阿尔法“;值提供不需要的边(matplotlib pcolormesh),python,matplotlib,Python,Matplotlib,我需要使用pcolormesh引入一个非常量的alpha值(imshow是一个先验的不可能的替代项,因为我需要使用轴的对数比例——因此沿每个坐标的间距是不规则的) 接下来,我尝试更改面的alpha值的后验概率。但是,在结果中,我无法去除出现的边 下面是一个简单的示例,我绘制了一个二维高斯凹凸(点很少),alpha从左下角到右上角递增: from matplotlib import pyplot as plt import numpy as np # start with coordinates

我需要使用pcolormesh引入一个非常量的alpha值(imshow是一个先验的不可能的替代项,因为我需要使用轴的对数比例——因此沿每个坐标的间距是不规则的)

接下来,我尝试更改面的alpha值的后验概率。但是,在结果中,我无法去除出现的边

下面是一个简单的示例,我绘制了一个二维高斯凹凸(点很少),alpha从左下角到右上角递增:

from matplotlib import pyplot as plt
import numpy as np

# start with coordinates, corresponding meshgrid to compute the "shading" value and 
# extended coordinate array for pcolormesh (center mesh)
xx = np.linspace(-4,4,7)
xmesh, ymesh = np.meshgrid(xx,xx)
xplot = np.pad(0.5*(xx[1:]+xx[:-1]),1,'reflect',reflect_type="odd") # center & extend
yy = np.exp(-xx[None,:]**2-xx[:,None]**2) # data to plot

# plot the data
fig = plt.figure()
hpc = plt.pcolormesh(xplot, xplot, yy, shading="flat", edgecolor=None)
plt.gca().set_aspect(1)

# change alpha of the faces: lower-left to upper-right  gradient
fig.canvas.draw()  # this generate face color array
colors = hpc.get_facecolor()
grad = ( (xmesh.ravel()+ymesh.ravel())/2. - xx.min() ) / ( xx.max()-xx.min() )
colors[:,3] = grad.ravel()  # change alpha
hpc.set_facecolor(colors)   # update face colors
fig.canvas.draw()           # make the modification appears
结果如下所示:2D高斯凹凸(点非常少),alpha从左下角到右上角递增:

有可能去掉这些边缘吗?我的问题是我甚至不知道它来自哪里。。。我尝试添加
hpc.set\u抗锯齿(True)
hpc.set\u光栅化(True)
,使用
hpc.set\u facecolor(face)
明确添加边,将线宽调整为非常小的值——这些都不起作用


非常感谢您的帮助

问题是,正方形有一点重叠,它们有些透明(您正在设置它们的alpha值!=1)--因此在重叠处,它们的透明度比它们应该的低,看起来像一条线

您可以通过使正方形不透明来修复此问题,但颜色应与规定的透明度相同,并带有白色背景:

def alpha_to_white(color):
    white = np.array([1,1,1])
    alpha = color[-1]
    color = color[:-1]
    return alpha*color + (1 - alpha)*white

colors = np.array([alpha_to_white(color) for color in colors])

非常感谢,这很有效!(事实上,我不需要“真实”的透明度)这是非常不幸的,因为我下面有一张真实的地图,所以需要透明度:-/但是谢谢你的解释!由于这个问题,我现在改用
tourtf