[解決済み] カットオフまたはオーバーラップするラベルでパディングを調整する方法
2022-03-22 11:21:40
質問
サブプロット付きMREを更新しました
- 元の質問とMREの有用性がよくわからないのですが。x,yラベルが大きい場合、margin paddingがきちんと調整されているようです。
- この問題はサブプロットで再現可能です。
-
使用方法
matplotlib 3.4.2
fig, axes = plt.subplots(ncols=2, nrows=2, figsize=(8, 6))
axes = axes.flatten()
for ax in axes:
ax.set_ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
ax.set_xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.show()
オリジナル
を使用してデータセットをプロットしています。
matplotlib
ここで、かなり "tall" な xlabel があります (これは TeX で表示される数式で、分数を含むため、数行のテキストに相当する高さがあります)。
いずれにせよ、図を描くと必ず数式の下が切れてしまいます。 図形のサイズを変えても解決しないようですし、x軸を"up"してxlabelのスペースを確保する方法がわかりません。 そのようなものは合理的な一時的解決策ですが、ラベルが切り取られていることを matplotlib に自動的に認識させ、それに応じてサイズを変更させる方法があるといいなと思います。
以下はその例です。
import matplotlib.pyplot as plt
plt.figure()
plt.ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
plt.xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$', fontsize=50)
plt.title('Example with matplotlib 3.4.2\nMRE no longer an issue')
plt.show()
ylabel全体は表示されているが、xlabelは下部で切れている。
この問題がマシン固有の問題である場合、私はこれを OSX 10.6.8 と matplotlib 1.0.0 で動かしています。
解決方法は?
使用する。
import matplotlib.pyplot as plt
plt.gcf().subplots_adjust(bottom=0.15)
# alternate option without .gcf
plt.subplots_adjust(bottom=0.15)
というラベルのためのスペースを確保するために
plt.gcf()
とは
現在の数値を取得する
.
plt.gca()
を取得し、現在の
Axes
を使用することもできます。
編集する
答えを出したので。
matplotlib
が追加されました。
plt.tight_layout()
関数を使用します。
matplotlibチュートリアル参照。タイトなレイアウトガイド
だから、それを使うことをお勧めします。
fig, axes = plt.subplots(ncols=2, nrows=2, figsize=(8, 6))
axes = axes.flatten()
for ax in axes:
ax.set_ylabel(r'$\ln\left(\frac{x_a-x_b}{x_a-x_c}\right)$')
ax.set_xlabel(r'$\ln\left(\frac{x_a-x_d}{x_a-x_e}\right)$')
plt.tight_layout()
plt.show()
関連
-
PythonはWordの読み書きの変更操作を実装している
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Pythonのsuper()は多重継承でどう動くのか?
-
[解決済み] サブプロットで図の大きさを変えるには?
-
[解決済み】Matplotlibで図のタイトルと軸ラベルのフォントサイズを設定するには?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python関数の高度な応用を解説
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】Python elifの構文が無効です【終了しました
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない