简体   繁体   English

具有不同数据名称的相同 seaborn 图

[英]Same seaborn plots with different data names

I need to generate multiple heatmaps using seaborn.我需要使用 seaborn 生成多个热图。 All plots have the same format and the only difference is data names (Pandas data frames), and I'm looking for a way that is simpler than using multiple, similar lines.所有图都具有相同的格式,唯一的区别是数据名称(Pandas 数据框),我正在寻找一种比使用多条相似线更简单的方法。 Let's say I want to generate 5 heatmaps from 5 dataframes (df1, df2, df3, df4, df5).假设我想从 5 个数据帧(df1、df2、df3、df4、df5)生成 5 个热图。 Below is what I tried.以下是我尝试过的。

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df1=pd.read_excel('c:/temporary/df1.xlsx')
df2=pd.read_excel('c:/temporary/df2.xlsx')
df3=pd.read_excel('c:/temporary/df3.xlsx')
df4=pd.read_excel('c:/temporary/df4.xlsx')
df5=pd.read_excel('c:/temporary/df5.xlsx')

for group in [‘df1’, ‘df2’, ‘df3’, ‘df4’, ‘df5’]:
   fig = plt.figure()
   x_labels = ['apple','orange','kiwi'] 
   y_labels = ['1','2','3'] 
   ax1 = fig.add_axes([0.25,0.25,0.7,0.7]) 
   ax=sns.heatmap(f’{group}, xticklabels=x_labels, yticklabels=y_labels, ax=ax1)
   fig.savefig(f'c:/temporary/{group}-matrix.png')

It didn't work I guess because f'{group} cannot be a dataframe, but are there any ways similar to this instead of writing 5 similar lines like below?我猜它不起作用,因为 f'{group} 不能是数据框,但是有没有类似的方法而不是像下面这样写 5 行类似的行? Thanks in advance.提前致谢。

ax=sns.heatmap(df1, xticklabels=x_labels, yticklabels=y_labels, ax=ax1)
ax=sns.heatmap(df2, xticklabels=x_labels, yticklabels=y_labels, ax=ax1)
ax=sns.heatmap(df3, xticklabels=x_labels, yticklabels=y_labels, ax=ax1)
ax=sns.heatmap(df4, xticklabels=x_labels, yticklabels=y_labels, ax=ax1)
ax=sns.heatmap(df5, xticklabels=x_labels, yticklabels=y_labels, ax=ax1)

如果我没看错,那么它看起来就像只是用变量列表[df1, df2, df3, df4, df5] ['df1', 'df2', 'df3', 'df4', 'df5']改变你的列表[df1, df2, df3, df4, df5]然后用group改变f'{group}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM