【发布时间】:2019-12-20 11:08:00
【问题描述】:
这是一个例子:
import seaborn as sns
ax = sns.lineplot(range(10), range(10), markers=True)
虽然我设置了markers=True,但为什么没有任何标记?
【问题讨论】:
这是一个例子:
import seaborn as sns
ax = sns.lineplot(range(10), range(10), markers=True)
虽然我设置了markers=True,但为什么没有任何标记?
【问题讨论】:
基本上,因为这不是 markers= 的用途。作为per the documentation:
标记:布尔值、列表或字典,可选
对象确定 如何为样式变量的不同级别绘制标记。 设置为 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(),因此,您可以通过使用 marker= kwarg 来指示 lineplot 使用标记(注意缺少“s”):
ax = sns.lineplot(range(10), range(10), marker='o')
【讨论】:
x 和 y 值。我认为直观的是,如果没有data 传递,当markers=True 时应该只使用默认标记类型,如果没有data,则给定样式不是有效参数。
发现了一个类似的问题here。例如,如果您使用 marker='*' 指定 matplotlib 参数,则会显示标记。
【讨论】: