見出し画像

統計グラフGPTs調整中メモ(1)


GPTsの調整のその後です。
パソコン内にテキストとして残していただけでは忘れてしまいそうなので、メモとしとnoteに残しておきます。
(調整がある程度済んだら削除し他の投稿と統合するかもしれません)

GPTsの名前は「TEST through GPT Customizer」(仮称)です。

APIクエリー(エリア別)

あなた
https://api.e-stat.go.jp/rest/3.0/app/getSimpleStatsData?cdCat01=059&cdCat02=03&cdTimeFrom=2000000101&cdArea=00000%2C00042&appId=<自分のアプリID>&lang=J&statsDataId=0002070001&metaGetFlg=Y&cntGetFlg=N&explanationGetFlg=Y&annotationGetFlg=Y&sectionHeaderFlg=2&replaceSpChars=0

TEST through GPT Customizer
データ処理に時間がかかるため、cdTimeFrom2023000101に変更し、指定されたAPIクエリーを実行します。この変更により、より最近のデータに焦点を当てることができます。次に、この更新されたクエリーを使用してデータを取得し、地域別のグラフを作成します。
[debug] Calling HTTP endpoint
[debug] Calling HTTP endpoint
[debug] Response received
api.e-stat.go.jpと通信しました
取得したデータに基づき、全国と北海道地方の二人以上の世帯の消費支出の推移を示すグラフを作成します。データは2023年1月から12月までの期間をカバーしています。グラフの作成には、日本語フォント「NotoSansJP-VariableFont_wght.ttf」を使用し、x軸の目盛りは英語表記にします。

2023年の消費支出の推移を示すグラフを作成しました。このグラフは、全国および北海道地方の二人以上の世帯の消費支出を月ごとに示しています。グラフから、消費支出は月によって変動していることがわかります。全国平均と比較して、北海道地方の消費支出は一部の月で異なる傾向が見られます。 ​

[>_](生成したPythonコード)

# データのプロット
plt.figure(figsize=(10, 6))

# 全国データのプロット
national_data = data[data["地域区分"] == "全国"]
plt.plot(pd.to_datetime(national_data["時間軸(月次)"], format='%Y年%m月'), national_data["value"], label="全国", marker='o')

# 北海道地方データのプロット
hokkaido_data = data[data["地域区分"] == "北海道地方"]
plt.plot(pd.to_datetime(hokkaido_data["時間軸(月次)"], format='%Y年%m月'), hokkaido_data["value"], label="北海道地方", marker='x')

plt.title("2023年の消費支出の推移", fontproperties=jp_font)
plt.xlabel("月", fontproperties=jp_font)
plt.ylabel("消費支出(円)", fontproperties=jp_font)
plt.legend(title="地域", prop=jp_font)
plt.grid(True)

# X軸の日付フォーマットを調整
plt.gca().xaxis.set_major_formatter(plt.matplotlib.dates.DateFormatter('%Y-%m'))

plt.xticks(rotation=45)
plt.tight_layout()
plt.show()


文字化け

あなた
凡例部分に文字化けが見られますね。解消できますか?

TEST through GPT Customizer
文字化けの問題を解決するために、日本語フォント「NotoSansJP-VariableFont_wght.ttf」を再度設定しましたが、凡例部分における文字化けが解消されないようです。これは、グラフのレンダリング時にフォントが正しく適用されないことが原因かもしれません。
解決策として、グラフのタイトル、軸ラベル、凡例テキストに明示的にフォントプロパティを適用しました。しかし、依然として文字化けが発生しています。これは、グラフを表示する環境や、フォントがシステムに正しくインストールされているかどうかに依存する可能性があります。
もし可能であれば、グラフを生成する環境のフォント設定を確認するか、他の表示方法を検討する必要があります。 ​​

サンプルコード変更


何度か試行、判例のタイトルは文字化けのまま。
このため、Knowledgeに登録してあるサンプルのPythonコードの記述を、plt.legend(title="凡例")からplt.legend()に変更。
また、x軸の目盛りも文字化けすることがあるので、「yyyy-mm」という表記になるようにサンプルコードを変更


同じクエリーを再度投げた結果です。

TEST through GPT Customizer
データ処理に時間がかかるため、cdTimeFrom=2023000101に変更します。[debug] Calling HTTP endpoint
[debug] Calling HTTP endpoint
[debug] Response received

2023年の消費支出の推移を示すグラフを作成しました。このグラフは、全国と北海道地方の二人以上の世帯における月別の消費支出を比較しています。各データ点は、2023年1月から12月までの消費支出の金額(円)を表しています。全国のデータと北海道地方のデータがそれぞれ異なるマーカーでプロットされており、時間の経過に伴う消費支出の変動を視覚的に確認できます。 ​​

[>_](生成したPythonコード)

# 日付を "YYYY-MM" 形式に変換する関数の定義
def convert_date(date_str):
    year_month = date_str.replace("年", "-").replace("月", "")
    return parse(year_month).strftime("%Y-%m")

# データフレームの日付データを変換
data["時間軸(月次)"] = data["時間軸(月次)"].apply(convert_date)

# グラフのプロット
plt.figure(figsize=(10, 6))

# 全国データのプロット
national_data = data[data["地域区分"] == "全国"]
plt.plot(national_data["時間軸(月次)"], national_data["value"], label="全国", marker="o")

# 北海道地方データのプロット
hokkaido_data = data[data["地域区分"] == "北海道地方"]
plt.plot(hokkaido_data["時間軸(月次)"], hokkaido_data["value"], label="北海道地方", marker="x")

plt.title("2023年の消費支出の推移", fontproperties=jp_font)
plt.xlabel("月", fontproperties=jp_font)
plt.ylabel("消費支出(円)", fontproperties=jp_font)
plt.legend(prop=jp_font)
plt.xticks(rotation=45)
plt.grid(True)
plt.tight_layout()

# グラフの表示
plt.show()

エリアコードリスト利用


Knowledgeにエリアコードリストをテキストファイルにして登録。
地域区分 area_code
全国 = 00000
大都市 = 00012
中都市 = 00013
小都市A = 00018
小都市B・町村 = 00020
北海道地方 = 000
東北地方 = 00043
関東地方 = 00044
北陸地方 = 00049
東海地方 = 00050
・・・


あなた
https://api.e-stat.go.jp/rest/3.0/app/getSimpleStatsData?cdCat01=059&cdCat02=03&cdTimeFrom=2000000101&cdArea=00000%2C00042&appId=<自分のアプリID>&lang=J&statsDataId=0002070001&metaGetFlg=Y&cntGetFlg=N&explanationGetFlg=Y&annotationGetFlg=Y&sectionHeaderFlg=2&replaceSpChars=0

対象エリアは「関東地方」にします。

TEST through GPT Customizer
データ処理に時間がかかるため、cdTimeFrom=2023000101に変更します。また、対象エリアを「関東地方」に指定します。Knowledgeにある情報を参照して、関東地方のarea_code00044です。これを使用してAPIクエリーを更新します。

あなた
go on

TEST through GPT Customizer
[debug] Calling HTTP endpoint
[debug] Calling HTTP endpoint
[debug] Response received
api.e-stat.go.jpと通信しました

上記のグラフは、2023年を通じて関東地方の消費支出の推移を示しています。データによると、消費支出は月によって変動しており、特に12月に最高値を記録しています。これは、年末の祝日シーズンに消費が増加する傾向があるためかもしれません。グラフからは、年間を通じて消費支出の動向を視覚的に捉えることができます。 ​​

[>_](生成したPythonコード)

import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
from matplotlib.font_manager import FontProperties

# 取得したデータをDataFrameに変換
data = {
    "time": ["2023年1月", "2023年2月", "2023年3月", "2023年4月", "2023年5月", "2023年6月",
             "2023年7月", "2023年8月", "2023年9月", "2023年10月", "2023年11月", "2023年12月"],
    "value": [309455, 278818, 323178, 328189, 294838, 297283,
              297074, 309198, 310962, 327696, 305716, 350721]
}

df = pd.DataFrame(data)

# "YYYY年MM月" 形式の日付を "YYYY-MM" 形式に変換
df["time"] = pd.to_datetime(df["time"], format='%Y年%m月').dt.strftime('%Y-%m')

# 日本語フォントの設定
font_path = '/mnt/data/NotoSansJP-VariableFont_wght.ttf'
jp_font = FontProperties(fname=font_path)

# データのプロット
plt.figure(figsize=(10, 6))
plt.plot(df["time"], df["value"], marker='o', linestyle='-', color='b')
plt.title("関東地方の消費支出推移 (2023年)", fontproperties=jp_font)
plt.xlabel("年-月", fontproperties=jp_font)
plt.ylabel("消費支出 (円)", fontproperties=jp_font)
plt.xticks(rotation=45)
plt.grid(True)
plt.tight_layout()
plt.show()

この記事が気に入ったらサポートをしてみませんか?