Python >> Tutoriel Python >  >> Python Tag >> Seaborn

Tracez des marqueurs de points et des lignes dans différentes teintes mais le même style avec Seaborn

Vous pouvez directement utiliser les pandas pour tracer.

pandas via groupby

fig, ax = plt.subplots()
df.groupby("logic").plot(x="n_index", y="value", marker="o", ax=ax)
ax.legend(["False","True"])

L'inconvénient ici serait que la légende doit être créée manuellement.

pandas via pivot

df.pivot_table("value", "n_index", "logic").plot(marker="o")

diagramme de Seaborn

Pour Seaborn Lineplot, il semble qu'un seul marqueur suffise pour obtenir le résultat souhaité.

sns.lineplot(x="n_index", y="value", hue="logic", data=df, marker="o")


Vous voyez, le problème est que les gens se confondent entre « marqueurs » et « marqueur ». Pour activer 'marker', définissez 'marker='o'' et non les marqueurs.

sns.lineplot(x=range(1,100),y=err,marker='o')


Vous devez définir dashes paramètre à False spécifiez également le style de la grille à "darkgrid" :

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

df = pd.DataFrame({
    "n_index": list(range(5)) * 2,
    "logic": [True] * 5 + [False] * 5,
    "value": list(range(5)) + list(range(5, 10))
})

sns.set_style("darkgrid")
sns.lineplot(x="n_index", dashes=False, y="value", hue="logic", style="logic", markers=["o", "o"], data=df)
plt.show()