ねぇ GPT のぞみの停車駅をグラフに描いてみて

今日は可視化を試しました。気分を替えて GPT-4 にお願いします。いつもの Bing に比べると生真面目な感じです。

ken: 東海道新幹線でのぞみが停車する駅について、駅名、東京からの距離、一日の乗降者数を CSV 形式で答えて下さい。

GPT-4: 私の知識は2021年までのものであり、それ以降の変更については分かりませんが、2021年時点での情報を元にCSV形式で答えます。

駅名,東京からの距離(km),一日の乗降者数(人)
東京,0,約450,000
品川,9,約378,000
新横浜,25,約203,000
小田原,76,約90,000
熱海,104,約35,000
三島,126,約41,000
新富士,145,約10,000
静岡,166,約58,000
掛川,211,約21,000
浜松,238,約64,000
豊橋,274,約45,000
三河安城,312,約28,000
名古屋,342,約410,000
岐阜羽島,396,約11,000
米原,441,約21,000
新大阪,515,約430,000
新神戸,552,約36,000
姫路,588,約55,000
岡山,674,約74,000
広島,821,約153,000
新岩国,898,約6,000
新下関,974,約6,000
博多,1069,約155,000

ちゃんと CSV っぽいものが出てきました。すばらしい!でも、鉄分のすくない脇田にも、おかしな点はいくつか見つけられますよ!新大阪から先は東海道新幹線の駅じゃない(よね?)。それと、のぞみはこんなに停まらない(違う?)それは、見なかったことにして、データ処理の邪魔になりそうな「約」を削除しておきましょう。

ken: 上のCSVデータの乗降者数の欄から「約」を削除して下さい。

GPT-4: (略)

ちゃんと仕事をしてくれました。こういうのはテキストエディタで簡単にできるけれど、口で言って、そのとおりになるのは嬉しいです。じゃ、つぎにこのデータの読み込みに挑戦してみましょう。

ken: 上のCSVデータをPandas DataFrameに読み込むPythonプログラムを教えて下さい。CSVのファイル名は "stations.csv" とします。

GPT-4: (前略:pandas のインストール方法の説明に続けて)次に、Python プログラムを作成します。

import pandas as pd
# CSVファイルを読み込む
df = pd.read_csv("stations.csv", encoding="utf-8")
# DataFrameを表示する
print(df)

(後略:プログラムの使用上の注意など。親切ですね。)

ken: この DataFrame を Plotly を用いて、棒グラフを描くプログラムを作って下さい。横軸は東京からの距離、縦軸は乗降者数とします。

GPT-4: (前略:plotly のインストール方法の説明に続けて)次に、以下の Python プログラムで、pandas の DataFrame を使って、Plotly で棒グラフを描画します。

import pandas as pd
import plotly.express as px

# CSVファイルを読み込む
df = pd.read_csv("stations.csv", encoding="utf-8")

# 棒グラフを描画する
fig = px.bar(df, x='東京からの距離(km)', y='一日の乗降者数(人)', text='駅名', hover_name='駅名', title='東海道新幹線の駅別乗降者数')

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

(プログラムの概説と、頼んでもいないホバー機能があることを説明。ありがたいです。)ついでに、グラフの軸やタイトルの名称を変更してみましょう。

ken: 横軸と縦軸のラベルをそれぞれ「東京から(km)」と「乗降者数」に変更して、タイトルは「のぞみの駅別乗降者数」に変更したプログラムに書き換えて。

GPT-4: 以下のようにプログラムを修正して、横軸と縦軸のラベルを変更し、タイトルを「のぞみの駅別乗降者数」に変更します。

import pandas as pd
import plotly.express as px

# CSVファイルを読み込む
df = pd.read_csv("stations.csv", encoding="utf-8")

# 棒グラフを描画する
fig = px.bar(df, x='東京からの距離(km)', y='一日の乗降者数(人)', text='駅名', hover_name='駅名', title='のぞみの駅別乗降者数')

# 軸ラベルを変更する
fig.update_layout(
    xaxis_title="東京から(km)",
    yaxis_title="乗降者数"
)

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

この修正されたプログラムでは、update_layout 関数を使って、横軸と縦軸のラベルをそれぞれ「東京から(km)」と「乗降者数」に変更し、タイトルを「のぞみの駅別乗降者数」に設定しています。プログラムを実行すると、ブラウザで棒グラフが表示されます。

実行はしていないけれども、これであってそうです。なかなか便利!

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