2017-11-24 6 views
-1

ヒートマップをいくつかの変数に呼び出すときにプロットする関数を作成するのに苦労しています。ヒートマップをプロットするためのPython関数

ここまで私がこれまでにやっていたことはうまくいきましたが、どのように機能させることができますか?

enter image description here

df = pd.DataFrame(columns=['ypos', 'xpos', 'val']) 

df.loc[0] = [1,1,MD.at[0,"VarName[1][1]"]] 
df.loc[1] = [1,2,MD.at[0,"VarName[1][2]"]] 
df.loc[2] = [1,3,MD.at[0,"VarName[1][3]"]] 
df.loc[3] = [1,4,MD.at[0,"VarName[1][4]"]] 
df.loc[4] = [2,1,MD.at[0,"VarName[2][1]"]] 
df.loc[5] = [2,2,MD.at[0,"VarName[2][2]"]] 
df.loc[6] = [2,3,MD.at[0,"VarName[2][3]"]] 
df.loc[7] = [2,4,MD.at[0,"VarName[2][4]"]] 
df.loc[8] = [3,1,MD.at[0,"VarName[3][1]"]] 
df.loc[9] = [3,2,MD.at[0,"VarName[3][2]"]] 
df.loc[10] = [3,3,MD.at[0,"VarName[3][3]"]] 
df.loc[11] = [3,4,MD.at[0,"VarName[3][4]"]] 
df.loc[12] = [4,1,MD.at[0,"VarName[4][1]"]] 
df.loc[13] = [4,2,MD.at[0,"VarName[4][2]"]] 
df.loc[14] = [4,3,MD.at[0,"VarName[4][3]"]] 
df.loc[15] = [4,4,MD.at[0,"VarName[4][4]"]] 

print(df) 
ax = sns.heatmap(df.pivot('ypos', 'xpos', 'val'), annot=True) 
ax.invert_yaxis() 

VARNAME 1 ... VARNAME [4] [4]データセットの各列のヘッダ名であることに注意してください。

本当にありがとうございます!

+0

ここまでのVarNamesはゼロに過ぎませんので、無視してください。 – user6688

答えて

0
def heatmap(VarName): 
    df = pd.DataFrame(columns=['ypos', 'xpos', 'val']) 
    i = 0 
    for x in range(1,5): 
     for y in range(1,5): 
      tempVar = (VarName + "["+str(x)+"]["+str(y)+"]") 
      df.loc[i] = [x,y,MD.at[0,tempVar]] 
      i = i + 1 
    ax = sns.heatmap(df.pivot('ypos', 'xpos', 'val'), annot=True) 
    ax.invert_yaxis() 
    ax.set_title(VarName) 

heatmap("VarName") # note the strings " " 

これは、上記のヒートマップとタイトルと同じヒートマップを出力しますが、関数から出力します。

関連する問題