グラフをxkcd風に作成する


  • 製造業出身のデータサイエンティストがお送りする記事
  • 今回はmatplotlibでxkcd風(コミック風)にグラフを作成する機能を試してみました。

はじめに

基本的な可視化は別の記事できちっと整理しておりますので、そちらを参照してください。

xkcdとは

xkcdとは、簡単に言うとコミック風の出力する機能らしいです。詳しいことはこちらを参照してください(xkcdとは)。

xkcdを試してみる

実装は凄い簡単です。1行だけスクリプトを追加するだけで全てのグラフがxkcd風になります。

注意
一度、jupyter notebookで実行するとずっとxkcd風になってしまいますので、戻す場合はカーネルをリセットする必要があります。

追加するコードは下記です。

plt.xkcd()

ヒストグラム

まずはヒストグラムを描画してみようと思います。

# ライブラリーのインストール
import numpy as np 
import pandas as pd
from sklearn.preprocessing import StandardScaler

from pandas.plotting import *
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
plt.xkcd()

import os

file_path = 'https://archive.ics.uci.edu/ml/machine-learning-databases/auto-mpg/auto-mpg.data'
file_name = os.path.splitext(os.path.basename(file_path))[0]
column_names = ['MPG','Cylinders', 'Displacement', 'Horsepower', 'Weight',
                  'Acceleration', 'Model Year', 'Origin'] 

df = pd.read_csv(
    file_path, # ファイルパス
    names = column_names, # 列名を指定
    na_values ='?', # ?は欠損値として読み込む
    comment = '\t', # TAB以降右はスキップ 
    sep = ' ', # 空白行を区切りとする
    skipinitialspace = True, # カンマの後の空白をスキップ
    encoding = 'utf-8'
) 

# ヒストグラム
df['MPG'].plot(kind='hist', bins=12)

箱ひげ図

次は箱ひげ図を描画してみようかと思います。

箱ひげ図(boxplot)
sns.boxplot(x='Model Year', y='MPG', data=df.sort_values('Model Year'), color='cornflowerblue')

バイオリン図

最後にバイオリン図を作成してみようと思います。

# violin plot 
sns.violinplot(x='Model Year', y='MPG', data=df.sort_values('Model Year'), color='cornflowerblue')

さいごに

最後まで読んで頂き、ありがとうございました。
今回は、xkcd風でグラフを作成してみました。
少し遊び心を持った資料を作成する際には面白いですね。

訂正要望がありましたら、ご連絡頂けますと幸いです。