Markers are not visible in seaborn plot

user5054 picture user5054 · Aug 13, 2019 · Viewed 7.9k times · Source

Here is an example:

import seaborn as sns
ax = sns.lineplot(range(10), range(10), markers=True)

enter image description here

Why aren't there any markers although I set markers=True?

Answer

Diziet Asahi picture Diziet Asahi · Aug 13, 2019

Basically, because that's not what markers= is for. As per the documentation:

markers : boolean, list, or dictionary, optional

Object determining how to draw the markers for different levels of the style variable. Setting to True will use default markers, or you can pass a list of markers or a dictionary mapping levels of the style variable to markers. Setting to False will draw marker-less lines. Markers are specified as in matplotlib.

Therefore, markers= is only useful when you also specify a style= parameter. For example:

fmri = sns.load_dataset("fmri")
ax = sns.lineplot(x="timepoint", y="signal", style="event", data=fmri, markers=True)

However, other kwargs are passed to plt.plot(), therefore, you can instruct lineplot to use markers by using the marker= kwarg (notice the lack of "s"):

ax = sns.lineplot(range(10), range(10), marker='o')