在Python,与Matplotlib,如何简单地做一个散点图与透明度(阿尔法<1),但与表示它们的颜色值,但具有α-= 1颜色条?
这是一个人得到的,有from pylab import *; scatter(range(10), arange(0, 100, 10), c=range(10), alpha=0.2); color_bar = colorbar():

彩条如何变得不透明?
PS:我试过了color_bar.set_alpha(1); draw(),但这没有做任何事......
我想要叠加几个hexbin图,但是使用内置颜色图只能看到最后一个.我不想重新构建色彩映射.如何在不事先知道色彩图的内部结构的情况下为色彩图添加线性alpha?
我有一个宠物项目来创建地图图像,在那里我绘制道路和其他东西在地形高程的等高线图上.它旨在计划山地自行车路线(过去我手工制作了一些矢量图,它们非常适合可视化).
目前,我从GeoTIFF下载数字高程模型:http: //www.ecologia.ufrgs.br/labgeo/arquivos/downloads/dados/SRTM/geotiff/rs.rar
然后使用GDAL和Matplotlib contourf函数创建绘图:
from osgeo import gdal
import matplotlib
import matplotlib.pyplot as plt
from pylab import cm
import numpy
f = 'rs.tif'
elev = gdal.Open(f)
a = elev.GetRasterBand(1).ReadAsArray()
w = elev.RasterXSize
h = elev.RasterYSize
print w, h
altura = (0.35, 0.42)
largura = (0.70, 0.82)
a = a[int(h*altura[0]):int(h*altura[1]),
int(w*largura[0]):int(w*largura[1])]
cont = plt.contourf(a, origin='upper', cmap=cm.gist_earth, levels=numpy.arange(0,1000,20))
plt.title('Altitudes - max: %d m; min: %d m' % (numpy.amax(a), numpy.amin(a)))
plt.show()
Run Code Online (Sandbox Code Playgroud)
这使:

问题是轮廓线是"白色的",并产生一些视觉污染,这是不希望的,因为我想稍后绘制道路和河流.
因此,我试图contourf通过参数设置或通过hack(更改源代码)来修改创建这些较轻线的方式,类似于此处提出的方法:
此外,如果有人知道如何以更优雅的方式生成这样的地图,使用其他库,我会非常感谢这个提示!
谢谢阅读.
在一些pdf查看器中,例如在OSX上预览,使用matplotlib's pcolor 制作的图有白线(见下图).我怎么能摆脱他们?
源代码是非常简单的(选择的任何数据x,y,z):
import matplotlib
matplotlib.use("pdf")
import matplotlib.pyplot as pl
pl.figure()
pl.pcolormesh(x,y,z,cmap="Blues",linewidth=0)
pl.savefig("heatmap.pdf")
Run Code Online (Sandbox Code Playgroud)

Python 版本:3.6.4(Windows 上的 Anaconda) Seaborn:0.8.1 Matplotlib:2.1.2
我正在尝试使用 Seaborn 创建一个 2D 核密度图,但我希望颜色图中的每个步骤都具有不同的 alpha 值。我查看了这个问题以创建一个带有 alpha 值的 matplotlib 颜色图:Add alpha to an existing matplotlib colormap。
当我发现这个问题时,我以为我已经找到了答案:Hide contour linestroke on pyplot.contourf to get only fills。我尝试了答案中概述的方法(使用set_edgecolor("face")但在这种情况下不起作用。这个问题似乎也与矢量图形格式有关,我只是在写出一个 PNG。
这是我的脚本:
import numpy as np
import seaborn as sns
import matplotlib.colors as cols
import matplotlib.pyplot as plt
def alpha_cmap(cmap):
my_cmap = cmap(np.arange(cmap.N))
# Set a square root alpha.
x = np.linspace(0, 1, cmap.N)
my_cmap[:,-1] = x ** (0.5) …Run Code Online (Sandbox Code Playgroud) 我尝试制作一个程序,根据参与者的点击绘制热图。有两个身体,情绪有增有减。
我想用蓝色显示左侧身体的点击强度(蓝色更强烈=点击次数更多),用红色显示右侧身体的点击强度。
问题是我需要在一个主体中显示它,并且还需要在背景图像上看到热图。
x=blue[:,1]
y=blue[:,2]
ax = plt.gca()
heatmap, xedges, yedges = np.histogram2d(x, y, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
plt.imshow(heatmap.T, extent=extent, origin='lower')
ax = plt.gca()
ax.invert_yaxis()
plt.show()
x1=red[:,1]
y1=red[:,2]
ax = plt.gca()
heatmap, xedges, yedges = np.histogram2d(x1, y1, bins=50)
extent = [xedges[0], xedges[-1], yedges[0], yedges[-1]]
plt.clf()
plt.imshow(heatmap.T, extent=extent, origin='lower')
ax = plt.gca()
ax.invert_yaxis()
plt.show()
plt.imshow(image)
imageFile = cbook.get_sample_data('C:\\Users\\Admin\\Desktop\\pythonpca\\result.png')
image = plt.imread(imageFile)
plt.plot(all_samples[0:240,0],all_samples[0:240,1], 'o', markersize=3, color='blue', alpha=0.5, label='increase')
plt.imshow(image)
Run Code Online (Sandbox Code Playgroud)
通过这个,我得到了左侧身体点击的热图、右侧身体点击的热图以及左侧和右侧身体的图片。我希望它们都在同一张图片中,带有蓝色和红色热点。我附上我得到的图片。
2张尸体图片(我在上面画了蓝点,但我不需要这些点):

左右身体的热图:

如果我应该添加更多信息,请告诉我。