Python 标记在seaborn绘图中不可见

Python 标记在seaborn绘图中不可见,python,seaborn,markers,Python,Seaborn,Markers,以下是一个例子: import seaborn as sns ax = sns.lineplot(range(10), range(10), markers=True) 尽管我设置了markers=True,但为什么没有任何标记?发现了类似的问题。例如,如果使用marker='*'指定matplotlib参数,标记将显示。基本上是这样,因为这不是markers=的用途。作为: 标记:布尔、列表或字典,可选 对象确定 如何为样式变量的不同级别绘制标记。 设置为True将使用默认标记,或者您可以

以下是一个例子:

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


尽管我设置了
markers=True
,但为什么没有任何标记?

发现了类似的问题。例如,如果使用
marker='*'
指定matplotlib参数,标记将显示。

基本上是这样,因为这不是
markers=
的用途。作为:

标记:布尔、列表或字典,可选

对象确定 如何为样式变量的不同级别绘制标记。 设置为True将使用默认标记,或者您可以传递 标记或字典将样式变量的级别映射到 标记。设置为False将绘制无标记线。标记是 在matplotlib中指定

因此,
markers=
仅在同时指定
style=
参数时才有用。例如:

fmri = sns.load_dataset("fmri")
ax = sns.lineplot(x="timepoint", y="signal", style="event", data=fmri, markers=True)
但是,其他kwarg被传递到
plt.plot()
,因此,您可以通过使用
标记=
kwarg指示
lineplot
使用标记(注意缺少“s”):


这不是虫子。只是不该这样用。(链接答案下面的评论是关于传说的,它是有缺陷的。)我认为预期用途根本不是直观的(请参阅我在另一个回复中的评论)。这就是为什么在@BenT linked to的答案中,我收集了您的常用选项。如果您不想使用seaborn假定的数据结构,那么根本没有理由使用seaborn。我不想使用数据框来指定要可视化的数据,不过,我只想将列表作为
x
y
值传递。。我认为直观的是,如果没有传递
数据
,当
markers=True
时,它应该只使用默认的标记类型,如果没有
数据
,给定的样式不是有效的参数。理解了,但正如fBeingernest在他的其他评论中所说的那样重要,seaborn只是一个帮助器,旨在帮助绘制数据帧。如果您不需要这些功能,那么就没有理由使用它,而是应该使用matplotlib直接绘图
ax = sns.lineplot(range(10), range(10), marker='o')