PythonでChatGPTと一緒におしゃれなグラフ作成してみた

PythonでChatGPTと一緒におしゃれなグラフ作成してみた
はじめに
今回はChatGPTと協力しながらMatplotlibでおしゃれでかっこいいグラフを作りたいと思います。
一から色やデザインを考えるのは大変なのでこの方の記事を参考にさせていただきます。
独自スタイルシートのダウンロード
matplotlibでは.mplstyleという拡張子でファイルを作成することで独自スタイルシートを作成することができるようです。
参考にした記事にあるdsheep_gray.mplstyleというファイルを作成することが第一ステップとなってます。
dsheep_gray.mplstyle
#################################################
# Author: dsheep
# Date: 2022/5/10
# Website: https://dsheepjapan.com/
# Twitter: @dsheepjapan
# Color reference: https://tailwindcolor.com/
# stylesheet customizing: https://matplotlib.org/stable/tutorials/introductory/customizing.html
#################################################
font.family: sans-serif
font.sans-serif: Arial, Liberation Sans, DejaVu Sans, Bitstream Vera Sans, sans-serif
font.style: normal
grid.color: white
grid.linestyle: -
grid.linewidth: 2
grid.alpha: 1.0
axes.grid: True
axes.grid.axis: both
axes.grid.which: major
axes.titlesize: xx-large
axes.titlepad: 30
axes.labelsize: x-large
axes.labelpad: 20
axes.facecolor: f3f3f3
axes.edgecolor: f3f3f3
axes.titlecolor: 595959
axes.labelcolor: 595959
axes.spines.left: True
axes.spines.bottom: True
axes.spines.top: True
axes.spines.right: True
axes.linewidth: 3
axes.axisbelow: True
axes.prop_cycle: cycler('color', ['EF4444', '0EA5E9', '10B981', 'F59E0B', 'D946EF', '64748B', '84CC16', '6366F1', 'B91C1C', '0369A1', '047857', 'A16207', 'A21CAF', '334155', '4D7C0F', '4338CA', 'FCA5A5', '7DD3FC', '6EE7B7', 'FCD34D', 'F0ABFC', 'CBD5E1', 'BEF264', 'A5B4FC'])
# ----- 300 / 500 / 700 : color -----
# FCA5A5 / EF4444 / B91C1C : red
# 7DD3FC / 0EA5E9 / 0369A1 : light blue
# 6EE7B7 / 10B981 / 047857 : emerald
# FCD34D / F59E0B / A16207 : amber
# F0ABFC / D946EF / A21CAF : fuchsia
# CBD5E1 / 64748B / 334155 : blue gray
# BEF264 / 84CC16 / 4D7C0F : lime
# A5B4FC / 6366F1 / 4338CA : indigo
xtick.labelsize: large
xtick.color: 595959
#xtick.major.bottom: True
xtick.labelcolor: 595959
xtick.direction: out
ytick.labelsize: large
ytick.color: 595959
ytick.labelcolor: 595959
ytick.direction: out
legend.fontsize: medium
legend.frameon: False
legend.facecolor: f3f3f3
legend.edgecolor: f3f3f3
legend.labelcolor: 595959
lines.linewidth: 2
lines.markeredgewidth: 2
lines.markersize: 7
lines.solid_capstyle:round
figure.titlesize: xx-large
figure.figsize: 12, 8
figure.dpi: 100
figure.facecolor: f3f3f3
figure.edgecolor: f3f3f3
scatter.edgecolors: white
image.cmap: tab20b
独自スタイルシートの設定
GoogleColabで使用するときはdsheep_gray.mplstyleファイルを「root」→「config」→「matplotlib」→「stylelib」(stylelibは新規作成する)の中に配置します。
import matplotlib.py
plt.style.use('/root/.config/matplotlib/dsheep_gray.mplstyle')
これだけでmatplotlibのデザインが変わります。簡単でいいですね。
データセットの準備
ChatGPTに質問して答えをコピー&ペーストしましょう。
様々なライブラリに搭載されているデータセットを表示してくれていますね。
今回はseabornライブラリのtaitanicデータセットを使いたいと思います。
import seaborn as sns
titanic = sns.load_dataset("titanic")
print(titanic.head())
ChatGPTに命令してグラフを作らせる
とりあえず散布図のマーカーの色が3種類になるようなグラフを作りたかったので、その通りに命令してみました。
hueにclassを指定すればマーカの色が3種類になるのでほぼ満点の回答ですね。
ただplt.style.use(’/root/.config/matplotlib/dsheep_gray.mplstyle’)というコードがない点は今回の趣旨に合わないので自分で追加しました。
実行結果はこのようになりました。
無事グラフを作成できていますね。
おわりに
今回のグラフはほぼコードを書いていませんし、短時間で作成できました。
ChatGPTのおかげで楽にグラフを作成できるようになりましたね。
ChatGPTはMatplotlibなどのPython可視化ではかなり精度の高い回答が多く、良い質問や命令をすれば何も調べずChatGPTと対話してれば完成することが多いように思えます。
これからも上手く活用していきたいですね。
ここまで読んで下さりありがとうございました。