我一直在努力seaborn
和它的heatmap
功能.我想构建一个带有来自pandas dataframe的带注释值的矩阵df
:
C,L,N a,x,10 a,y,2 a,z,4 b,x,1 b,y,22 b,z,11 c,x,3 c,y,1 c,z,0
到目前为止,它适用于:
# Read DataBase df = pd.read_csv('myfile.csv') # Save Users/City/Language Matrix pdf = df.pivot(index='C',columns='L',values='N').fillna(0) # Set Font Parameters rc = {'font.size': 8, 'xtick.labelsize': 11, 'ytick.labelsize': 11} # Set Figure fig = plt.figure(figsize=(20, 9)) # Assign to Seaborn sns.set(rc=rc) with sns.axes_style('white'): sns.heatmap(pdf, cbar=False, square=False, annot=True, cmap='Blues', fmt='g', linewidths=0.5)
哪个回报:
最后,我有兴趣只保留值并将结构保存为一个简单的表格,丢弃颜色.我尝试设置cmap=None
但它不起作用,没有cmap
,seaborn为cmap
热图分配默认值.
如果我不理解你的错误,并且你想要的只是忽略色彩映射,你可以使用matplotlib的ListedColormap创建你自己选择的背景颜色的自定义色彩映射:
from matplotlib.colors import ListedColormap with sns.axes_style('white'): sns.heatmap(pdf, cbar=False, square=False, annot=True, fmt='g', cmap=ListedColormap(['white']), linewidths=0.5)
哪个会产生:
用white
STR,HEX或RGB颜色替换字符串以设置您选择的背景颜色.
但是,我认为pandas
提供更好的出口选择.在下面找到所有可能的导出选项的屏幕:
根据您要插入表格的位置,可能to_html
,to_json
或者to_latex
比使用seaborn绘图更好的选择.