例如,我想提供一个 alpha 值数组,该数组的长度与我想用散点图绘制的点数相同。
我看到通过手动计算 rbg 颜色值并使用颜色图来解决问题,有没有更简单的方法?
如果这是唯一的方法,我该如何抽象该函数,以便我可以只提供元素、颜色和透明度值的数量来获取我需要的颜色图?我不知道我可能使用什么颜色,透明度权重也会改变,所以我想要更通用的东西。
您可以使用matplotlib.colors.to_rgb(a).
import matplotlib.pyplot as plt
from matplotlib.colors import to_rgb, to_rgba
import numpy as np
def scatter(x, y, color, alpha_arr, **kwarg):
r, g, b = to_rgb(color)
# r, g, b, _ = to_rgba(color)
color = [(r, g, b, alpha) for alpha in alpha_arr]
plt.scatter(x, y, c=color, **kwarg)
N = 500
x = np.random.rand(N)
y = np.random.rand(N)
alpha_arr = x * y
scatter(x, y, 'red', alpha_arr, s=10) # ok
scatter(x, y, '#efefef', alpha_arr, s=10) # ok
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2156 次 |
| 最近记录: |