Пусть у нас есть такие данные:
import pandas as pd
import seaborn as sns
data = np.array([[5.2, 500, 1], [7.2, 450, 1],[6.2, 350, 1],[4.6, 400,1 ],[5.9, 212,1], [6.2, 350, 2],[4.6, 400,2 ],[5.9, 212,2]])
df = pd.DataFrame({'val':data[:,0],'size':data[:,1], 'time':data[:,2]})
![enter image description here](https://i.stack.imgur.com/PVJ5i.png)
val
- фактическое среднее значение, рассчитанное по набору данных с размером, указанным вsize
Столбец
График для рисования:
ax = sns.boxplot (x = 'time', y="val", data=df)
ax = sns.swarmplot(x = 'time', y="val", data=df, color=".25", size = df.size )
![enter image description here](https://i.stack.imgur.com/X0cZl.png)
он будет нарисован явно без учета реального среднего значения - что должносумма val
, деленная на сумму size
для каждого time
(почему все точки имеют одинаковый размер)
Рисование relplot
помогает рисовать точки с нужным размером, но какНарисуйте там истинный коробочный сюжет:
ax = sns.relplot(x = 'time', y="val", size="size",dashes = True,
sizes=(40, 400), alpha=.5, palette="muted",
height=6, data=df)
![enter image description here](https://i.stack.imgur.com/LO4xS.png)