如何在pandas.scatter_matrix中使用rgb值添加颜色?

How to use rgb value to add color in pandas.scatter_matrix?

我想在pd.scatter_matrix中添加颜色,这样的rgb值,

   val_rgb = [[127  80  34]
     [130  89  34]
     [170 133  75]
     ...]

我曾经像那样在 scatter3D 中使用它们,

for i in range(0, len(df)):
    ax1.scatter3D(
        df[i,0], 
        df[i,1],
        df[i,2],
        s = 2,
        marker='o',
        c = '#%02x%02x%02x' % tuple(val_rgb[i])
    )

但是在scatter_matrix里面,我发现只能加上c='red',有没有更准确的调整每个点的颜色?

PS(我也找到了按标签加色sns.pairplot(df),但也没找到如何准确加色...)

您可以使用 0 到 1 之间的浮点值元组使用 RGB 格式指定颜色。因此只需将 RGB 值除以 255:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

N = 500
data = pd.DataFrame(np.random.randn(N, 4), columns=['A','B','C','D'])
colors = np.random.randint(256, size=(N, 3))  # random colors


pd.plotting.scatter_matrix(data, alpha=.2, color=colors / 255)