ヒストグラム
Contents
3. ヒストグラム#
3.1. 概要#
ヒストグラム(Histogram) とは,量的変数に対して,分布の形状を 長方形の組合せ で表すグラフです. 横軸に変数の 区間 ,縦軸にその区間に属するデータの数( 度数 )を取ります. 柱状図 とも呼ばれます. 量的変数の分布を見る際,利用頻度が高い図です.
例えば上図は,マンガ作品ごとの平均掲載位置の分布を表したヒストグラムです.0.6
から0.7
にピークがあることがわかります.
ヒストグラムには様々な種類がありますが,ここでは累積ヒストグラムと積上げヒストグラムを紹介します.
累積ヒストグラム とは,下図のように累積分布を表現したヒストグラムです.これにより 特定の値以下(以上) のデータがどの程度存在するかを確認することができます.
積上げヒストグラムとは,下図のように横軸とは他の変数によって度数を分割し,縦に積上げたヒストグラムです.これにより,分布を構成する要素の内訳を確認しやすくなります.
3.2. Plotlyによる作図方法#
Plotlyでは,plotly.express.histogram()
でヒストグラムを作成可能です.
import plotly.express as px
fig = px.histogram(df, x='col_x')
上記の例では,df
のcol_x
列をX軸,その度数をY軸に取ったヒストグラムのオブジェクトfig
を作成します.また,
fig = px.histogram(df, x='col_x', cumulative=True)
cumulative=True
オプションを指定することで,累積ヒストグラムを作図可能です.更に,
fig = px.histogram(df, x='col_x', color='col_stack', barmode='stack')
barmode='stack'
を指定することで,col_stack
列に関する積み上げヒストグラムを作図可能です.
もちろん,cumulative
との組み合わせて使うこともできます.
3.3. MADB Labを用いた作図例#
3.3.1. 下準備#
import pandas as pd
import plotly.express as px
import warnings
warnings.filterwarnings('ignore')
# 前処理の結果,以下に分析対象ファイルが格納されていることを想定
PATH_DATA = '../../data/preprocess/out/episodes.csv'
# Jupyter Book用のPlotlyのrenderer
RENDERER = 'plotly_mimetype+notebook'
# 平均掲載位置を算出する際の最小連載数
MIN_WEEKS = 5
def show_fig(fig):
"""Jupyter Bookでも表示可能なようRendererを指定"""
fig.update_layout(margin=dict(t=50, l=25, r=25, b=25))
fig.show(renderer=RENDERER)
df = pd.read_csv(PATH_DATA)
3.3.2. 掲載位置の分布#
MIN_WEEKS
以上連載したマンガ作品の平均掲載位置の分布を見てみます.
df_plot = \
df.groupby(['mcname', 'cname', 'creator'])['pageStartPosition']\
.agg(['count', 'mean']).reset_index()
df_plot = df_plot[df_plot['count'] >= MIN_WEEKS]\
.reset_index(drop=True)
fig = px.histogram(
df_plot, x='mean', title='作品ごとの掲載位置')
fig.update_xaxes(title='平均掲載位置')
fig.update_yaxes(title='作品数')
show_fig(fig)