Python 散点图中的单个alpha值

Python 散点图中的单个alpha值,python,matplotlib,alpha,scatter-plot,Python,Matplotlib,Alpha,Scatter Plot,我想知道是否可以使用Matplotlib的散射功能为每个点绘制单独的alpha值。我需要画一组点,每个点都有它的alpha值 例如,我有这个代码来绘制一些点 def plot_singularities(points_x, p, alpha_point, file_path): plt.figure() plt.scatter(points_x, points_y, alpha=alpha_point) plt.savefig(file_path + '.png', dp

我想知道是否可以使用Matplotlib的
散射
功能为每个点绘制单独的alpha值。我需要画一组点,每个点都有它的alpha值

例如,我有这个代码来绘制一些点

def plot_singularities(points_x, p, alpha_point, file_path):
    plt.figure()
    plt.scatter(points_x, points_y, alpha=alpha_point)
    plt.savefig(file_path + '.png', dpi=100)
    plt.close()
我所有的
点x
点y
α点
都有n个值。但是,我无法将数组分配给
scatter()
中的
alpha
参数。如何为每个点设置不同的alpha值?我可以使用每个特定的alpha值逐点循环和绘图,但这似乎不是一个好方法。

matplotlib>=3.4的新解决方案 由于matplotlib 3.4,alpha支持多个值的iterable:

将numpy导入为np
将matplotlib.pylab作为plt导入
x=np.arange(10)
y=np.arange(10)
alphas=np.linspace(0.1,1,10)
plt.散射(x,y,alpha=alphas)
plt.show()
matplotlib<3.4的旧解决方案 tcaswell的建议是正确的,您可以这样做:

import numpy as np
import matplotlib.pylab as plt

x = np.arange(10)
y = np.arange(10)

alphas = np.linspace(0.1, 1, 10)
rgba_colors = np.zeros((10,4))
# for red the first column needs to be one
rgba_colors[:,0] = 1.0
# the fourth column needs to be your alphas
rgba_colors[:, 3] = alphas

plt.scatter(x, y, color=rgba_colors)
plt.show()

可以将颜色参数和颜色贴图与alpha一起使用。
cmap
将alpha值从0线性增加到1

import numpy as np
import matplotlib.pylab as plt
from matplotlib import colors

c='C0'

xs = np.arange(10)

fig, ax = plt.subplots(1, 1)
cmap = colors.LinearSegmentedColormap.from_list(
        'incr_alpha', [(0, (*colors.to_rgb(c),0)), (1, c)])
ax.scatter(xs, xs, c=xs, cmap=cmap, ec=None, s=10**2)

plt.show()

我希望它是一个散点图,在某些点上有标记。不是热图。您必须将预彩色映射为RGBA值的颜色列表传递给Work,以便随时了解为什么
plt。plot
不支持此功能(或者是否支持此功能?)?plt.plot使用线段,有关多色线,请参阅。如果要设置标记颜色,请使用
markerfacecolor
markeredgecolor
kwargsThanks-我更喜欢使用
plot
,但是
errorbar
允许使用字母数组,而
scatter
具有一些优势。开始理解为什么没有一致的需求:\n遗憾的是
alpha=
不支持可编辑的输入,因为它可以与
color=
配合使用。在matplotlib 3.4中,
alpha
现在支持每个数据点都有一个值的iterables谢谢您的回答。
C0
代表什么?“C0”是蓝色的色调C0'到C9'是matplotlib的标准调色板。在一个有很多线条的情节中可以很好地区分它们。