私は 'df'と 'df2'というラベルのついたヒストグラムを作成したのと同じフォーマットの2つのデータフレームを持っています。私は 'df_merged'と呼ばれる第3のデータフレームを持っています。これは、データフレームのdfとdf2の組み合わせです。他の2つのヒストグラムバーの合計のヒストグラムをプロットする方法は?
私は「DF」と「DF2」の合計を示すために、第三のヒストグラムバーをしたいです。また、 'df'と 'df2'のヒストグラムを組み合わせた 'df_merged'ヒストグラムに正規化し、 'df'と 'df2'のヒストグラムが結合されたヒストグラムになるようにします。これは実現可能ですか?
x軸で200を開始して以来、私のグラフは不正確に見えます。 'df2'は 'df2'と 'df'の合計であるため、正しくない組み合わせよりも高くなります。私は3つのヒストグラムの各ビンに合計値の数を重み付けしたので、これが起こっていると思います。これは実現可能ですか?
import numpy as np
import pandas as pd
from pandas import DataFrame, Series
import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
df = df[['Column1']]
df2 = df2[['Column1']]
df_merged = pd.concat([df, df2], ignore_index=True)
df_weights = 100*np.ones_like(df.values)/float(len(df))
df2_weights = 100*np.ones_like(df2.values)/float(len(df2))
df_merged_weights = 100*np.ones_like(df_merged.values)/float(len(df_merged))
fig, ax = plt.subplots()
ax.hist(df.values, bins=25, weights=df_weights, color='black', histtype='step', label='df')
ax.hist(df2.values, bins=200, weights=df2_weights, color='green', histtype='step', label='df2')
ax.hist(df_merged.values, bins=200,weights=df_merged_weights,color='red', histtype='step', label='Combined')
ax.margins(0.05)
ax.set_ylim(bottom=0)
ax.set_xlim([0,1000])
p.legend(loc='upper right')
私はすべてのバーの合計を1にしたかったので、私は重みを必要としたので、各ビンに合計値の数を重み付けしました。これをコードに組み込むにはどうすればよいですか?私はそれを重み付けすると、ヒストグラムはまだ 'df2'が元の投稿のように結合されたものよりもまだ大きいので、まだ間違っています。 – user112947
私は参照してください...私は答えを更新しました。基本的に、「結合」分布の合計は1であり、他の2つの分布はそれの分数です。これがあなたが探していたものかどうかは分かりません。 – Constructor
ありがとうございました。これはまさに私が探していたものでした。 – user112947