seaborn.
pointplot
(*, x=None, y=None, hue=None, data=None, order=None, hue_order=None, estimator=<function mean>, ci=95, n_boot=1000, units=None, seed=None, markers='o', linestyles='-', dodge=False, join=True, scale=1, orient=None, color=None, palette=None, errwidth=None, capsize=None, ax=None, **kwargs)¶使用散点图图示符显示点估计和置信区间。
点图表示通过散点图点的位置对数值变量的中心趋势进行的估计,并使用误差线对该估计周围的不确定性进行指示。
点图可能比条形图更有用,用于集中比较一个或多个分类变量的不同级别。他们特别擅长显示交互作用:一个分类变量的级别之间的关系如何在第二个分类变量的级别之间变化。从同一点连接各点的线 hue
水平允许通过坡度的差异来判断相互作用,这比比较几组点或条的高度更容易。
重要的是要记住,点图只显示平均值(或其他估计值),但在许多情况下,它可能是更多的信息显示在每一级的分类变量值的分布。在这种情况下,其他方法,如盒子或小提琴情节可能更合适。
输入数据可以以多种格式传递,包括:
表示为列表、numpy数组或直接传递给 x
, y
和/或 hue
参数。
“长格式”数据帧,在这种情况下 x
, y
和 hue
变量将决定如何绘制数据。
一个“宽格式”数据框,这样每个数字列都将被打印出来。
向量的数组或列表。
在大多数情况下,可以使用numpy或Python对象,但最好使用pandas对象,因为关联的名称将用于注释轴。此外,可以对分组变量使用分类类型来控制绘图元素的顺序。
此函数始终将其中一个变量视为分类变量,并在顺序位置(0,1。。。n) 在相关轴上,即使数据具有数字或日期类型。
见 tutorial 更多信息。
data
或矢量数据,可选中变量的名称用于绘制长格式数据的输入。解释见示例。
用于打印的数据集。如果 x
和 y
不存在,这被解释为广义形式。否则它将是长格式的。
以绘制中的分类级别,否则级别是从数据对象推断出来的。
在每个分类箱中估计的统计函数。
估计值周围的置信区间大小。如果为“sd”,则跳过自举并绘制观测值的标准偏差。如果 None
,不会执行引导,也不会绘制误差线。
计算置信区间时要使用的引导迭代次数。
data
或矢量数据,可选中变量的名称采样单元的标识符,用于执行多级引导和考虑重复测量设计。
种子或随机数发生器可复制的引导。
用于每个 hue
水平。
要用于每个 hue
水平。
将每个级别的点分开的数量 hue
沿分类轴的变量。
如果 True
,将在同一时间点估计值之间绘制线 hue
水平。
绘图元素的比例因子。
绘图的水平方向或垂直方向。这通常是根据输入变量的类型推断出来的,但当两者都存在时,它可以用来解决含糊不清的问题 x
和 y
是数字或打印宽格式数据时。
所有元素的颜色,或渐变调色板的种子。
用于不同级别的 hue
变量。应该是可以解释的东西 color_palette()
,或将色调级别映射到matplotlib颜色的字典。
误差条线(和封口)的厚度。
误差线上“大写”的宽度。
轴对象,否则使用当前轴。
返回绘制了绘图的轴对象。
实例
绘制一组按分类变量分组的垂直点图:
>>> import seaborn as sns
>>> sns.set_theme(style="darkgrid")
>>> tips = sns.load_dataset("tips")
>>> ax = sns.pointplot(x="time", y="total_bill", data=tips)
绘制一组由两个变量嵌套分组的垂直点:
>>> ax = sns.pointplot(x="time", y="total_bill", hue="smoker",
... data=tips)
沿分类轴分离不同色调级别的点:
>>> ax = sns.pointplot(x="time", y="total_bill", hue="smoker",
... data=tips, dodge=True)
对色调级别使用不同的标记和线条样式:
>>> ax = sns.pointplot(x="time", y="total_bill", hue="smoker",
... data=tips,
... markers=["o", "x"],
... linestyles=["-", "--"])
绘制一组水平点:
>>> ax = sns.pointplot(x="tip", y="day", data=tips)
不要在每个点之间画一条线:
>>> ax = sns.pointplot(x="tip", y="day", data=tips, join=False)
对单层打印使用不同的颜色:
>>> ax = sns.pointplot(x="time", y="total_bill", data=tips,
... color="#bb3f3f")
对点使用不同的调色板:
>>> ax = sns.pointplot(x="time", y="total_bill", hue="smoker",
... data=tips, palette="Set2")
通过传递显式命令的控制点顺序:
>>> ax = sns.pointplot(x="time", y="tip", data=tips,
... order=["Dinner", "Lunch"])
使用中位数作为中心趋势的估计值:
>>> from numpy import median
>>> ax = sns.pointplot(x="day", y="tip", data=tips, estimator=median)
用误差线表示平均值的标准误差:
>>> ax = sns.pointplot(x="day", y="tip", data=tips, ci=68)
显示观察值的标准偏差而不是置信区间:
>>> ax = sns.pointplot(x="day", y="tip", data=tips, ci="sd")
要添加误差线“caps:
>>> ax = sns.pointplot(x="day", y="tip", data=tips, capsize=.2)
使用 catplot()
合并 pointplot()
和A FacetGrid
. 这允许在其他分类变量中进行分组。使用 catplot()
比使用更安全 FacetGrid
直接,因为它确保了跨方面的可变顺序的同步:
>>> g = sns.catplot(x="sex", y="total_bill",
... hue="smoker", col="time",
... data=tips, kind="point",
... dodge=True,
... height=4, aspect=.7);