SunRichSan
@SunRichSan

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

混合行列のtn,fp,fn,tpの数値だけ大きくしたい

混合行列のtn,fp,fn,tpの数値だけ大きくしたいと考えています。
グローバル設定を変えて、対応していますが、他のグラフへの影響があります。

from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay
import matplotlib.pyplot as plt

plt.rcParams["font.size"] = 50 #globalでの設定変更
fig, ax = plt.subplots(figsize=(5,5))
disp=ConfusionMatrixDisplay.from_predictions(
['B','M','M','B','M','M','B'],
['B','M','M','M','B','M','B'],
labels=['B','M'],
cmap=plt.cm.Blues,
ax=ax
)
disp.im_.colorbar.remove()
ax.set_title("ConfusionMatrix", fontsize=20)
ax.set_xlabel("Predicted label", fontsize=20)
ax.set_ylabel("True label", fontsize=20)
ax.tick_params(labelsize =20)
plt.show()

ローカルに、tn,fp,fn,tpの数値だけを大きくするには、どうすればよいでしょうか?
添付の図は、目標とするものですが、グローバル設定
plt.rcParams["font.size"] = 50
であることが問題です。
この図だけ(他のグラフに影響することなく)、このようにしたいのです。
ConfusionMatrixDisplay.PNG

0

1Answer

以下の2つの方法があります。

都度フォントサイズを変更する

必要なタイミングで都度 plt.rcParams["font.size"] = {好きなフォントサイズ} を実行します。

コンテキストマネージャーを使う

コンテキストマネージャー matplotlib.rc_contextを使うと、with文の中だけフォントサイズを変更できます。

import matplotlib as mpl

with mpl.rc_context({'font.size': 100}):
    fig, ax = plt.subplots(figsize=(5,5))
    ConfusionMatrixDisplay.from_predictions(
        ['B','M','M','B','M','M','B'],
        ['B','M','M','M','B','M','B'],
        labels=['B','M'],
        cmap=plt.cm.Blues,
        ax=ax
    )
    plt.show()
0Like

Comments

  1. @SunRichSan

    Questioner

    mamo3grさん
    ありがとうございます。
    コンテキストマネージャーmatplotlib.rc_contextを使うようにします。
    勉強になりました。

Your answer might help someone💌