Snažím se nakreslit oboustranný graf podobný populační pyramida je vysvětleno zde a zde. Problém je, že mám kategorické proměnné (muži/ženy), že chci do skupiny společně:
import pandas as pd
import seaborn as sns
# data
data = {'species': ['X', 'X', 'Y', 'Y', 'Z', 'Z', 'X', 'X', 'Y', 'Y', 'Z', 'Z'],
'sex': ['male', 'female', 'male', 'female', 'male', 'female', 'male', 'female', 'male', 'female', 'male', 'female'],
'mass (g)': [4000, 3500, 3800, 3200, 5500, 4900, 2500, 2100, 2400, 2000, 4200, 3800],
'age': ['adult', 'adult', 'adult', 'adult', 'adult', 'adult', 'juvenile', 'juvenile', 'juvenile', 'juvenile', 'juvenile', 'juvenile']}
df = pd.DataFrame(data)
# convert juvenile mass to negative
df.loc[df.age.eq('juvenile'), 'mass (g)'] = df['mass (g)'].mul(-1)
# plot
sns.set_theme(style="whitegrid")
fig, ax = plt.subplots(figsize=(10,5))
sns.barplot(data=df, x='mass (g)', y='species', hue='sex', ci=False, orient='horizontal', dodge=True)
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
plt.show()
Na obrázku níže je to, co jsem usilovat. Různé barevné pruhy jsou pro mužské/ženské pohlaví. Různých druhů X, Y, Z jsou v samostatných kategorické skupiny. Mříže na pravé straně obrázek show hmotnost dospělých pro každý druh.
Jsem načrtl v červené pruhy na levé straně ukázat hmotnosti nedospělých jedinců pro každý druh. Jak tohle mám sakra vykreslit? Nemůžu nic najít užitečné v seaborn docs nebo TAK.