Python 熊猫:根据标签使用不同颜色打印

Python 熊猫:根据标签使用不同颜色打印,python,pandas,Python,Pandas,我有一个二进制矩阵(0和1-代表一个二部网络)保存到pd数据帧中。每行和每列都有一个标签(网络的模块): 其中cols和rows是标签 警察局是这样的: 我想以视觉方式打印矩阵: 如果元素为0,则打印一个白点 如果元素为1,则打印一个彩色点,颜色根据标签指定 我已经能够以二进制方式打印矩阵: 如何根据标签更改颜色(不仅仅是黑色)?A热图是一种很好的打印点的方法,其中有一个1用于可视化。对于标签,我已经根据您的评论进行了综合 更新 想要标签不相等的灰色吗 需要一个定制的颜色映射,还需要更新

我有一个二进制矩阵(0和1-代表一个二部网络)保存到pd数据帧中。每行和每列都有一个标签(网络的模块):

其中cols和rows是标签

警察局是这样的:

我想以视觉方式打印矩阵:

  • 如果元素为0,则打印一个白点
  • 如果元素为1,则打印一个彩色点,颜色根据标签指定 我已经能够以二进制方式打印矩阵:

如何根据标签更改颜色(不仅仅是黑色)?

A热图是一种很好的打印点的方法,其中有一个1用于可视化。对于标签,我已经根据您的评论进行了综合

更新
  • 想要标签不相等的灰色吗
  • 需要一个定制的颜色映射,还需要更新
    lambda
    函数以生成将使用此颜色映射的值

这有帮助吗-您能帮我将此功能应用到我的案例中吗?我对它不是很熟悉。如果可以的话我会的,但是你的代码有未定义的变量N和m。你谈论标签和函数时没有说明它们是什么你是对的,那是我的错。N是矩阵的行数,M是列数。列和行是标签(您可以在图片中看到它们,它们是显示在列上方和左侧行旁边的数字)。我应该更具体一点吗?我已经修改了-如果你想要一个更集中的答案,关注一个最小的可重复的例子,类似于我生成数据集的答案-它确实更多地涉及到如何使用彩色地图
df = pdDataFrame(Matrix, columns=cols, index=rows)
G = np.zeros((N, M, 3))
G[df>0]=[0, 0, 0]
G[df==0]=[1, 1, 1]
import seaborn as sns
import matplotlib.pylab as plt
import matplotlib as mpl
import pandas as pd
import numpy as np
N = 100

M = 200
# sparse binary matrix, p probability it's zero
p = 0.8
df = pd.DataFrame(np.random.choice([0,1], (M,N), p=(p, 1-p)),
                  # syntehsize column and row indexes as being labels 0 to 9
                  columns=sorted((list(range(10))*N)[0:N]),
                  index=sorted((list(range(10))*N)[0:M]))


# create the new map, forcing in grey for zero
cmap = mpl.colors.ListedColormap([(.8, .8, .8, 1.0)] + [plt.cm.jet(i) for i in range(plt.cm.jet.N-1)])

# 0 is grey... any other value comes from color map
ax = sns.heatmap(df.apply(lambda s: (s.name==s.index)*s*(s.index+1)), mask=df.eq(0), cmap=cmap )