Учитывая DataFrame
с весами и группами наблюдений, как можно построить сгруппированную взвешенную гистограмму в matplotlib? Я ищу что-то вроде этого:
![Source: https://twitter.com/Econ_Marshall/status/1220847559461175297/photo/2](https://i.stack.imgur.com/wN4jo.png)
Данные могут выглядеть так:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
d = {'by' : ['A', 'A', 'B', 'B', 'C'],
'val' : [4., 3., 2., 1., np.nan],
'w' : [10., 8., np.nan, 5., 7.]}
df = pd.DataFrame(d)
Я могу получить отдельные гистограммы используя pandas график by
arg, например:
df.hist('val', by='by')
![enter image description here](https://i.stack.imgur.com/xUBQ4.png)
или
df.groupby('by').plot.hist('val')
![enter image description here](https://i.stack.imgur.com/mMXar.png)
Но построение pandas не поддерживает либо добавление весов к этому, либо AFAICT построение гистограмм на том же графике.
В этом руководстве показано, как нанести их на один и тот же график, но серии перекрываются, а также не используют общие ячейки. Он также не использует веса наблюдений, хотя, похоже, они могут быть добавлены. ![enter image description here](https://i.stack.imgur.com/XhHO4.png)