Lineplot no muestra todas las fechas en el eje.

Tengo los siguientes:

fig, ax = plt.subplots(figsize=(40, 10)) sns.lineplot(x="Date", y="KFQ imports", data=df_dry, color="BLACK", ax=ax) sns.lineplot(x="Date", y="QRR imports", data=df_dry, color="RED",ax=ax) ax.set(xlabel="Date", ylabel="Value", ) x_dates = df_dry['Date'].dt.strftime('%b-%Y') ax.set_xticklabels(labels=x_dates, rotation=45) 

Resultado introduzca la descripción de la imagen aquí

Cuando uso un gráfico de barras ( sns.barplot ), se muestra todo el espectro de fechas. ¿Me falta algo para el gráfico de líneas? yo

La idea sería establecer los xticks para exactamente las fechas en su dataframe. Para este fin puede usar set_xticks(df.Date.values) . Entonces puede ser bueno usar un formateador personalizado para las fechas, lo que permitiría formatearlos de la forma que desee.

 import pandas as pd import matplotlib.pyplot as plt from matplotlib import dates import seaborn as sns df = pd.DataFrame({"Date" : ["2018-01-22", "2018-04-04", "2018-12-06"], "val" : [1,2,3]}) df.Date = pd.to_datetime(df.Date) ax = sns.lineplot(data=df, x="Date", y="val", marker="o") ax.set(xticks=df.Date.values) ax.xaxis.set_major_formatter(dates.DateFormatter("%d-%b-%Y")) plt.show() 

introduzca la descripción de la imagen aquí

Nótese cómo se puede lograr lo mismo sin mar, ya que

 ax = df.set_index("Date").plot(x_compat=True, marker="o") ax.set(xticks=df.Date.values) ax.xaxis.set_major_formatter(dates.DateFormatter("%d-%b-%Y")) plt.show()