[matplotlib] 95. subplot_mosaicによる年賀状

matplotlib

はじめに

matplotlibのsubplot_mosaic機能を使用して年賀状を作成する方法を解説します。この機能を活用することで、アスキーアート的なレイアウト指定により複数の図を効率的に配置し、オリジナリティあふれる年賀状デザインを実現できます。

コード

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

解説

モジュールのインポートなど

rcParamsのfontの設定を変更して、日本語を使えるようにします。

バージョン

画像のパスのリスト

下記サイトから来年度の干支である牛関連の画像のurlのリストを作成します。

かわいいフリー素材集
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。

住所の作成

レイアウトの作成

図はアスキーアート的に文字列で設定する事になります。

基本的な年賀状の作成

figsizeを年賀はがきのサイズに設定します。次に、fig.subplot_mosaic(layout1)を使って、先ほど定義したレイアウトをfigに適用します。

画像の表示には、plt.imread(np.random.choice(pass_m))を使ってリストからランダムに選んだ画像を読み込み、imshowで表示します。axd[“a”].imshow(im_m)によってレイアウトの「a」の位置に画像im_mが表示されます。また、axd[“c”].textを使って住所を表示し、右端揃えにするためにha=”right”パラメータを設定します。

ax.axis(“off”)で図の枠線を非表示にします。

plt.subplots_adjust(wspace=0, hspace=0)を設定することで、図間の横方向と縦方向の間隔をゼロにします。

メイン画像を2 × 2で表示した年賀状

メイン画像を3 × 3で表示した年賀状

向きが横の年賀状

まとめ

matplotlibのsubplot_mosaic機能を使うことで、プログラミングによる年賀状作成が可能になります。アスキーアート的な感覚でレイアウトを指定できるため、直感的に複数の図を配置でき、Pythonプログラミングの楽しさを感じながらオリジナルの年賀状を作成できます。

参考

Complex and semantic figure composition — Matplotlib 3.3.0 documentation

コメント