Pandasでgeom_freqpolyなグラフ

R function geom_freqpoly equivalent in Python to plot frequency polygons – StackOverflow

geom_freqpolyは密度分布ではなくてヒストグラムなので(distplotではなくcountplot),「pandas.DataFrame.plot.density()」ではなく,「pandas.DataFrame.plot.hist()」が目的のグラフだろう.それと同様の値を求めて,折れ線グラフにすれば良い.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
sns.set(style='darkgrid', palette='deep')


def freqpoly_plot(df, key, bins=(-1, 10, 2), ind=(0, 10, 2), ax=None):
    b = pd.cut(df[key], range(*bins), labels=range(*ind))
    return b.value_counts().reindex(range(*ind)).plot(ax=ax)


x = (1.5,1.5,1.5,1.5,1.5,1.5,1.5,
         2.5,2.5,2.5,
         3.5,3.5,3.5,3.5,3.5,3.5,
         4.5,4.5,
         6.5,6.5,6.5,6.5,6.5,6.5,6.5,6.5)

df = pd.DataFrame({'x': x})

ax = df['x'].plot.hist(bins=3)
df.pipe(freqpoly_plot, 'x', ax=ax)

ダウンロード

広告
カテゴリー: 未分類 パーマリンク

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください