[解決済み] Matplotlib 図形の顔色 (背景色)
2022-08-18 08:13:46
質問
以下のコードが、フィギュアのフェイスカラーを設定する際に機能しない理由を、どなたか教えていただけませんか?
import matplotlib.pyplot as plt
# create figure instance
fig1 = plt.figure(1)
fig1.set_figheight(11)
fig1.set_figwidth(8.5)
rect = fig1.patch
rect.set_facecolor('red') # works with plt.show().
# Does not work with plt.savefig("trial_fig.png")
ax = fig1.add_subplot(1,1,1)
x = 1, 2, 3
y = 1, 4, 9
ax.plot(x, y)
# plt.show() # Will show red face color set above using rect.set_facecolor('red')
plt.savefig("trial_fig.png") # The saved trial_fig.png DOES NOT have the red facecolor.
# plt.savefig("trial_fig.png", facecolor='red') # Here the facecolor is red.
図の高さと幅を
fig1.set_figheight(11)
fig1.set_figwidth(8.5)
で指定すると、これらはコマンド
plt.savefig("trial_fig.png")
. しかし、facecolorの設定は拾われません。なぜでしょうか?
ご教授ありがとうございます。
どのように解決するのですか?
それは
savefig
が図の背景のfacecolorを上書きしているからです。
(これは実は意図的なものです...。というのも、保存された図の背景色を
facecolor
へのクワーグを
savefig
. 紛らわしくて一貫性のないデフォルトですがね!)
最も簡単な回避策は、単に
fig.savefig('whatever.png', facecolor=fig.get_facecolor(), edgecolor='none')
(ここでedgecolorを指定しているのは、実際の図のデフォルトのedgecolorが白だからで、これでは保存した図の周りに白いボーダーが出来てしまいます)
お役に立てれば幸いです。
関連
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] IPythonノートブックmatplotlibプロットをインラインで行う方法
-
[解決済み] サブプロットで図の大きさを変えるには?
-
[解決済み】Matplotlibで図のタイトルと軸ラベルのフォントサイズを設定するには?
-
[解決済み] matplotlib のプロットでフォントサイズを変更する方法
-
[解決済み】Matplotlib の tight_layout() が図の suptitle を考慮しない。
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] サブフォルダからのインポートモジュール
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] PythonからSMTPを使用してメールを送信する
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] Pythonの辞書にあるスレッドセーフについて