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

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

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

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

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

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で複数のグラフを一度に描く方法について説明する予定です。

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

댓글을 불러오는 중...