diff --git a/visualisation/BivariateSpecificity.py b/visualisation/BivariateSpecificity.py
index a67bd9e8a52255f7a0627c627862664619286dda..2633998e6e15116d11b22c0b0947d1593be764db 100755
--- a/visualisation/BivariateSpecificity.py
+++ b/visualisation/BivariateSpecificity.py
@@ -1,16 +1,19 @@
 #!/usr/bin/env python3
 
 from GEODE import tabular
+from LongFormatFromTXM import extractBivariate, toLongFormat
 from color import qualitative
 import matplotlib.pyplot as plot
 import seaborn
 import sys
 
 def bivariateSpecificity(inputTSV, outputPNG):
-    specificities = tabular(inputTSV)
+    specificities = toLongFormat(tabular(inputTSV))
+    bivariate = extractBivariate(specificities, '_', ['domaine', 'auteur'])
     ax = seaborn.catplot(
-            data=specificities, x='auteur', y='Spécificité', col='domaine',
-            hue='lemme', kind='bar', zorder=3, palette=qualitative)
+            data=bivariate.reset_index(), x='auteur', y='Spécificité',
+            col='domaine', hue='lemme', kind='bar', zorder=3, height=3.5,
+            aspect=1.6, palette=qualitative)
     ax.despine(left=True)
     ax.set_xlabels('')
     ax.set_titles('{col_name}')
diff --git a/visualisation/LongFormatFromTXM.py b/visualisation/LongFormatFromTXM.py
index 903bae208f644c3a44a716666791b96291e801cc..39bc75e5fab0786e24295b66053f44f0076ca36f 100755
--- a/visualisation/LongFormatFromTXM.py
+++ b/visualisation/LongFormatFromTXM.py
@@ -12,6 +12,12 @@ def toLongFormat(txmData):
     specificities.name = 'Spécificité'
     return pandas.DataFrame(specificities)
 
+def extractBivariate(specificities, sep, into):
+    index = specificities.index.names
+    columns = specificities.columns
+    specificities[into] = [*specificities.index.map(lambda r: r[0].split(sep))]
+    return specificities.reset_index().set_index(into + index[1:])[columns]
+
 def convert(inputTSV, outputTSV):
     toLongFormat(tabular(inputTSV)).to_csv(outputTSV, sep='\t')