我想在海运中创建一个热图,并有一个很好的方式来查看标签.
有了ax.figure.tight_layout()
,我就能得到
这显然很糟糕.
如果没有ax.figure.tight_layout()
,标签就会被裁剪.
代码是
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sn
n_classes = 10
confusion = np.random.randint(low=0, high=100, size=(n_classes, n_classes))
label_length = 20
label_ind_by_names = {
"A"*label_length: 0,
"B"*label_length: 1,
"C"*label_length: 2,
"D"*label_length: 3,
"E"*label_length: 4,
"F"*label_length: 5,
"G"*label_length: 6,
"H"*label_length: 7,
"I"*label_length: 8,
"J"*label_length: 9,
}
# confusion matrix
df_cm = pd.DataFrame(
confusion,
index=label_ind_by_names.keys(),
columns=label_ind_by_names.keys()
)
plt.figure()
sn.set(font_scale=1.2)
ax = sn.heatmap(df_cm, annot=True, annot_kws={"size": 16}, fmt='d')
# ax.figure.tight_layout()
plt.show()
我想在label_ind_by_names
的基础上创建一个额外的图例,然后在热图上发布一个缩写,并能够在图例中查找缩写.
在海运中如何做到这一点?