Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Markers are not visible in seaborn plot

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?

like image 834
user5054 Avatar asked Aug 13 '19 21:08

user5054


2 Answers

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')
like image 104
Diziet Asahi Avatar answered Sep 21 '22 12:09

Diziet Asahi


A similar problem was found here. If you specify the matplotlib argument using marker='*' for example the markers will show up.

like image 26
BenT Avatar answered Sep 21 '22 12:09

BenT