BI
2023/04/03
上野 桃香

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

logo_Python

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と対話してれば完成することが多いように思えます。

これからも上手く活用していきたいですね。
ここまで読んで下さりありがとうございました。

New call-to-action