¿Cómo agregar desplazamiento del eje en el diagrama matplotlib?

Estoy dibujando varias gráficas de puntos en seaborn en el mismo gráfico. El eje x es ordinal, no numérico; Los valores ordinales son los mismos para cada gráfico de puntos. Me gustaría desplazar cada gráfico un poco hacia un lado, de la forma en que el parámetro pointplot (dodge = ...) lo hace dentro de varias líneas dentro de un solo gráfico, pero en este caso para múltiples gráficos diferentes dibujados uno encima del otro. ¿Cómo puedo hacer eso

Idealmente, me gustaría una técnica que funcione para cualquier parcela matplotlib, no solo sea seaborn específicamente. Agregar un desplazamiento a los datos no funcionará fácilmente, ya que los datos no son numéricos.

Ejemplo que muestra las parcelas superpuestas y que son difíciles de leer (esquivar dentro de cada parcela funciona bien)

import pandas as pd
import seaborn as sns

df1 = pd.DataFrame({'x':list('ffffssss'), 'y':[1,2,3,4,5,6,7,8], 'h':list('abababab')})
df2 = df1.copy()
df2['y'] = df2['y']+0.5
sns.pointplot(data=df1, x='x', y='y', hue='h', ci='sd', errwidth=2, capsize=0.05, dodge=0.1, markers='<')
sns.pointplot(data=df2, x='x', y='y', hue='h', ci='sd', errwidth=2, capsize=0.05, dodge=0.1, markers='>')

Podría usar algo que no sea seaborn, pero las barras automáticas de confianza / error son muy convenientes, por lo que preferiría seguir con seaborn aquí.

Respuestas a la pregunta(1)

Su respuesta a la pregunta