ホームページ >バックエンド開発 >Python チュートリアル >Matplotlib で多数の垂直方向に積み上げられたプロットを作成するときに、サブプロットの重複を防ぐにはどうすればよいですか?

Matplotlib で多数の垂直方向に積み上げられたプロットを作成するときに、サブプロットの重複を防ぐにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-06 03:26:12648ブラウズ

多数のプロットを含む Matplotlib のサブプロットの重複

Web ページ上に表示するために Matplotlib で一連の垂直方向に積み重ねられたプロットを生成する場合、重複を防ぐためにサブプロット間の適切な間隔を確保することが重要です。図のサイズが大きくなったにもかかわらず、サブプロットは重複することがよくあります。

現在の実装

次のコードは、現在の実装を示しています。

import matplotlib.pyplot as plt
import my_other_module

titles, x_lists, y_lists = my_other_module.get_data()

fig = plt.figure(figsize=(10,60))
for i, y_list in enumerate(y_lists):
    plt.subplot(len(titles), 1, i)
    plt.xlabel("Some X label")
    plt.ylabel("Some Y label")
    plt.title(titles[i])
    plt.plot(x_lists[i],y_list)
fig.savefig('out.png', dpi=100)

解決策: タイトなレイアウト

これに対処するにはこの問題が発生した場合は、matplotlib.pyplot.tight_layout または matplotlib.figure.Figure.tight_layout の使用を検討してください。これらの関数は、サブプロットと間隔が重ならないように調整します。

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=4, ncols=4, figsize=(8, 8))
fig.tight_layout() # Or equivalently,  "plt.tight_layout()"

plt.show()

視覚的な比較

次の画像は、使用の影響を示しています。 tiny_layout:

tight_layout なし

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

tight_layout あり

How Can I Prevent Overlapping Subplots in Matplotlib When Creating Many Vertically Stacked Plots?

以上がMatplotlib で多数の垂直方向に積み上げられたプロットを作成するときに、サブプロットの重複を防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。