Pythonデータ可視化入門 6 - 練習問題

힘센캥거루
2023년 11월 14일(수정됨)
2
12

今回はデータ可視化の練習問題です。

既存の資料を使うとつまらないですよね?

新しいデータを使ってみましょう。

1. ファイルと問題

ファイルは公共データポータルから取得した年間犯罪発生件数、検挙件数の統計です。

以下の条件に従ってグラフを描いてみましょう。

  • ハッキング(データ流出)の発生及び検挙件数を視覚化すること

  • タイトル、x軸ラベル、y軸ラベル、凡例を設定すること

  • 線のスタイルを自由に変更すること

  • その他のスタイルは自由

Pythonデータ可視化入門 6 - 練習問題-1

2. 問題の解答

まず、前回の記事から最初の内容をコピーします。ここで変更すべきはファイルのパスのみです。

import pandas as pd

# モジュール呼び出しと日本語フォントの設定
import matplotlib.pyplot as plt
import matplotlib

# MacOSでのフォント設定
# matplotlib.rcParams["font.family"] = "AppleGothic"

# Windowsでのフォント設定
matplotlib.rcParams["font.family"] = "Malgun Gothic"

# フォントサイズの設定
matplotlib.rcParams["font.size"] = 13

# マイナス表示の問題解決
plt.rcParams['axes.unicode_minus'] = False

crime = pd.read_excel("./crime_statistics.xlsx")
crime.head(3)

データを確認すると、年度が区分に応じて2つずつ重複していることが分かります。

Pythonデータ可視化入門 6 - 練習問題-2

重複する年度はunique()で除去します。

そしてlocと条件文を利用してハッキングの発生件数、検挙件数を抽出し、一度グラフを描いてみます。

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1)
plt.plot(x,y2)
Pythonデータ可視化入門 6 - 練習問題-3

グラフに凡例とタイトルを追加してみましょう。

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,label="発生件数") # <-- 追加
plt.plot(x,y2,label="検挙件数") # <-- 追加
plt.legend() # <-- 追加
plt.title("ハッキング(データ流出)発生及び検挙件数") # <-- 追加
Pythonデータ可視化入門 6 - 練習問題-4

そして軸名も設定します。

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,label="発生件数")
plt.plot(x,y2,label="検挙件数")
plt.legend()
plt.xlabel("年度") # <-- 追加
plt.ylabel("件数") # <-- 追加
plt.title("ハッキング(データ流出)発生及び検挙件数")
Pythonデータ可視化入門 6 - 練習問題-5

最後に線スタイルを指定し、グリッドを追加しました。

x = crime.loc[:,"연도"].unique()
y1 = crime.loc[crime.구분=="발생건수","해킹(자료유출)"]
y2 = crime.loc[crime.구분=="검거건수","해킹(자료유출)"]
plt.plot(x,y1,"^--",label="発生件数") # <-- 追加
plt.plot(x,y2,"o-",label="検挙件数") # <-- 追加
plt.legend()
plt.xlabel("年度")
plt.ylabel("件数")
plt.title("ハッキング(データ流出)発生及び検挙件数")
plt.grid() # <-- 追加
Pythonデータ可視化入門 6 - 練習問題-6

3. 記事を終えて

次の記事では、Matplotlibで複数のグラフを一度に描く方法について説明する予定です。

データ可視化の練習に多くの役立つことを願っています。

관련 글

学校業務の自動化 - AIを利用した生活記録簿チェック 教科別・特別記述編
学校業務の自動化 - AIを利用した生活記録簿チェック 教科別・特別記述編
学校で最も意味がなく、きつくて退屈な業務を一つ挙げろと言われたら、自分は生活記録簿(生徒指導要録)チェックを選ぶだろう。中学校では生活記録簿がそれほど重要ではないが、高等学校では入試と関係しているため非常に重要である。問題は、このような生活記録簿の点検で探すものが、せいぜい単純な誤字脱字、記載禁止用...
ゼロから作りながら学ぶ LLM 第7章 読書レビューとチャレンジの感想
ゼロから作りながら学ぶ LLM 第7章 読書レビューとチャレンジの感想
第7章の内容は、指示に従うように微調整するプロセスだ。ある質問に対して、期待する応答を返すようにすること。やはり必要なのはデータである。1. 指示微調整の手順ここでの要点は、質問と応答のデータセットを用意し、入力-出力のペアとして学習させること。これをプロンプトスタイルと呼ぶ。その他は以前のプロセス...
ゼロから作りながら学ぶ LLM 第6章 読書レビュー
ゼロから作りながら学ぶ LLM 第6章 読書レビュー
第6章は、分類のためのファインチューニングについてである。例として出てくるのは、スパム分類器の作成。スパム分類器は、あるメールなどがスパムかスパムでないかを分類するものなので、出力結果は 0 や 1 のような値になる必要がある。1. ファインチューニングの手順ファインチューニングのプロセスは、モデル...
ゼロから作りながら学ぶ LLM 第5章 読書レビュー
ゼロから作りながら学ぶ LLM 第5章 読書レビュー
今日は12月14日だ。実はチャレンジ期間はすでに2週間も過ぎてしまったが、だからといってレビューを書くのをあきらめることはできなかった。こうして残しておくTILが、あとで自分の血となり肉となるからだ。コードそのものよりも、その意味に集中して書いてみようと思う。1. モデルの損失計算GPTモデルを作っ...
ゼロから作りながら学ぶ LLM 第4章 読書レビュー
ゼロから作りながら学ぶ LLM 第4章 読書レビュー
今日は11月26日なので、毎日1章ずつ読み切ればチャレンジ成功だ。長男と次男の妨害の中で、それが可能かどうかは分からない。1. ダミー・トランスフォーマーGPTモデルを作りながら、PyTorchからトランスフォーマーのダミーブロックを持ってくる箇所を見た。調べてみると、PyTorch の nn の中...
ゼロから作りながら学ぶLLM第3章読書感想
ゼロから作りながら学ぶLLM第3章読書感想
MacBookに大量の水をこぼしてパニックになり、3〜4日無駄にした。今考えてみると、どうせMacBookは駄目になったし、修理に出すと思って何かをすればよかったと思う。とにかく少し遅れたけど、最後までやるべきだと思い、第3章の感想を残す。1. アテンションメカニズム3章...

댓글을 불러오는 중...