
ChatGPTのCode Interpreterでグラフやイラストを描いてもらう
最近、ChatGPTのCode Interpreterが使えるようになっていましたので早速試してみました。
この機能は、Python コードの作成と実行方法を認識し、ファイルのアップロードを操作してくれるそうです。
今回はグラフだけではなく、PythonのPILを使ってイラストを描画してもらいました。
まずは、グラフを描いてもらいましょう。
性格を視覚化する
私:「自分のことをグラフ化したいのですが何かいいアイディアありますか?」
性格を視覚化する一つの方法として、ビッグファイブ(大五因子性格モデル)があります。このモデルでは、人間の性格は以下の5つの広範な次元で表現されます:
1. 開放性(新しい経験への開放性)
2. 誠実性
3. 外向性
4. 友好性(協調性)
5. 神経質性
各因子は一般的に0から100までのスコアで評価されます。もし自分自身をこれら5つの性格特性について0から100のスケールで評価できるなら、それを基にグラフを作成することができます。
「なるほど、そういう性格特性があるのね。」
そして、ChatGPTからそれぞれに対する質問を回答すると…。

ちゃんとコードも書いてくれています。
# User's personality scores
scores = {
'Openness': 100,
'Conscientiousness': 60,
'Extraversion': 70,
'Agreeableness': 50,
'Neuroticism': 30
}
# Plotting
import matplotlib.pyplot as plt
plt.figure(figsize=(10, 5))
plt.bar(scores.keys(), scores.values(), color='skyblue')
plt.ylim(0, 100)
plt.title('Big Five Personality Traits')
plt.ylabel('Score')
plt.grid(axis='y')
plt.show()
レーダーチャートにしてみます。

コードは以下になります。
# Import necessary libraries
import numpy as np
import pandas as pd
from math import pi
# Define data for radar chart
data = pd.DataFrame({
'group': ['Your scores'],
'Openness': [100],
'Conscientiousness': [60],
'Extraversion': [70],
'Agreeableness': [50],
'Neuroticism': [30]
})
# Compute number of variables and their angle
num_vars = len(data.columns) - 1
angles = np.linspace(0, 2 * np.pi, num_vars, endpoint=False).tolist()
# Radar chart needs to be a 'closed' shape, so repeat the first value of each list at the end
values = data.loc[0].drop('group').values.flatten().tolist()
values += values[:1]
angles += angles[:1]
# Plot
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(polar=True))
ax.fill(angles, values, color='skyblue', alpha=0.25)
ax.plot(angles, values, color='skyblue', linewidth=2)
# Fix axis
ax.set_yticklabels([])
ax.set_xticks(angles[:-1])
ax.set_xticklabels(data.columns[1:])
plt.title('Big Five Personality Traits - Radar Chart', size=20, color='blue', y=1.1)
plt.show()
※残念ながら、グラフの表記を日本語にすると文字化けしました。
あとは、一定時間経つと、ChatGPTがPythonコードを読めなくなり、もう一度Pythonコードを分析する?ところにリセットしてしまいました。
画像編集ライブラリのPIL(Pillow)でドラえもんを描いてもらう
PythonのツールであるPILでドラえもんの絵がどこまで描けるかお願いしてみました。

あまり乗り気ではない感じですが、なんとかお願いして描いてもらいました。
結果

青くて、ヒゲっぽいのもあって鈴も入れて…
特徴を捉えてますので認識してる?
キャラクターを当てるゲーム
ChatGPTにPythonのPILを使って有名なキャラクターを描いてもらい、それを当てるゲームをしてみました。

ChatGPTが描いたのがコレ↓

全然わかりません。
とりあえず、ヒントを聞いてみる。
ヒント1
このキャラクターはアメリカの人気アニメーションシリーズの主人公です。彼の家は海底にあり、彼自身は非常に楽観的で友好的な性格を持っています。
私:「スパイダーマン」
ChatGPT:「違います」
ヒント2
このキャラクターは、彼の職場はファーストフードレストランで、彼の最も一般的なアウトフィットはブラウンのパンツと赤いネクタイです。彼の最も親しい友人は、常に防水スーツを着ているピンクの星の形をしたキャラクターです。これで分かりますか?
「わかりません」
答え
「スポンジボブ・スクエアパンツ」

むずいわ…
まとめ
ChatGPTのCode Interpreterでグラフをイラストを描いてもらいました。
データ分析などでグラフを活用できますね。PILはあくまで図形を編集するので高画質のイラスト生成には向きませんが、ゲームとかに応用できそうですね。
以上、参考になれば幸いです。
参考にさせていただいた記事
https://note.com/it_navi/n/ne33cc645fe23