seaborn.stripplot#
- seaborn.stripplot(data=None, *, x=None, y=None, hue=None, order=None, hue_order=None, jitter=True, dodge=False, orient=None, color=None, palette=None, size=5, edgecolor=<default>, linewidth=0, hue_norm=None, log_scale=None, native_scale=False, formatter=None, legend='auto', ax=None, **kwargs)#
使用抖动绘制分类散点图,以减少过度绘图。
条形图可以单独绘制,但它也是盒形图或小提琴图的良好补充,在您想要显示所有观察结果以及对潜在分布的一些表示时。
有关更多信息,请参阅 教程。
注意
默认情况下,此函数将其中一个变量视为分类变量,并在相关轴上按序位置 (0, 1, … n) 绘制数据。从 0.13.0 版本开始,可以通过设置
native_scale=True
来禁用此功能。- 参数:
- dataDataFrame、Series、dict、array 或 array 列表
用于绘图的数据集。如果
x
和y
缺失,则将其解释为宽格式。否则,预计它将是长格式。- x, y, huedata 中的变量名称或向量数据
用于绘制长格式数据的输入。请参阅示例以了解解释。
- order, hue_order字符串列表
以其绘制分类级别顺序;否则,级别将从数据对象中推断出来。
- jitterfloat、
True
/1
是特殊情况 要应用的抖动量(仅沿分类轴)。当您有许多点并且它们重叠时,这可能很有用,因此更容易看到分布。您可以指定抖动量(均匀随机变量支持宽度的一半),或使用
True
获取良好的默认值。- dodgebool
当分配
hue
变量时,将其设置为True
将沿分类轴分离不同色调级别的条带,并缩小分配给每个条带的空间量。否则,每个级别的点将绘制在同一条带上。- orient“v” | “h” | “x” | “y”
图的方向(垂直或水平)。这通常根据输入变量的类型推断出来,但它可以用来解决当
x
和y
都是数字或绘制宽格式数据时出现的歧义。在版本 v0.13.0 中更改: 添加了 ‘x’/’y’ 作为选项,相当于 ‘v’/’h’。
- colormatplotlib 颜色
图中元素的单一颜色。
- palette调色板名称、列表或字典
用于
hue
变量不同级别的颜色。应该是可以被color_palette()
解释的内容,或者是一个将色调级别映射到 matplotlib 颜色的字典。- sizefloat
标记的半径,以点为单位。
- edgecolormatplotlib 颜色,“gray” 是特殊情况
围绕每个点的线条的颜色。如果传递
"gray"
,则亮度由用于点主体调色板决定。请注意,stripplot
默认情况下具有linewidth=0
,因此边缘颜色只有在非零线宽时才可见。- linewidthfloat
构成绘图元素线条的宽度。
- hue_norm元组或
matplotlib.colors.Normalize
对象 数据单位中的归一化,用于将色图应用于
hue
变量(当它是数字时)。如果hue
是分类的,则与之无关。新版功能 v0.12.0。
- log_scalebool 或数字,或 bool 或数字对
将轴刻度设置为对数。单个值设置图中任何数字轴的数据轴。一对值独立设置每个轴。数字值被解释为所需基数(默认值为 10)。当
None
或False
时,seaborn 将委托给现有的 Axes 刻度。新版功能 v0.13.0。
- native_scalebool
当为 True 时,分类轴上的数字或日期时间值将保持其原始缩放,而不是转换为固定索引。
新版功能 v0.13.0。
- formatter可调用
用于将分类数据转换为字符串的函数。影响分组和刻度标签。
新版功能 v0.13.0。
- legend“auto”、"brief"、"full" 或 False
如何绘制图例。如果为 "brief",则数字
hue
和size
变量将用均匀间隔值的样本表示。如果为 "full",则每个组都将在图例中获得一个条目。如果为 "auto",则根据级别的数量在 "brief" 或 "full" 表示之间选择。如果为False
,则不会添加任何图例数据,也不会绘制任何图例。新版功能 v0.13.0。
- axmatplotlib Axes
用于绘制图的 Axes 对象,否则使用当前 Axes。
- kwargs键值对映射
其他关键字参数将传递给
matplotlib.axes.Axes.scatter()
.
- 返回值:
- axmatplotlib Axes
返回带有绘制图形的 Axes 对象。
参见
swarmplot
一种分类散点图,其中点不会重叠。可以与其他图一起使用以显示每个观测值。
boxplot
具有类似 API 的传统箱线图。
violinplot
箱线图和核密度估计的组合。
catplot
将分类图与
FacetGrid
组合。
示例
分配单个数值变量显示其单变量分布,点在另一个轴上随机“抖动”
tips = sns.load_dataset("tips") sns.stripplot(data=tips, x="total_bill")
分配第二个变量将分割点条,以比较该变量的分类级别
sns.stripplot(data=tips, x="total_bill", y="day")
通过交换分类变量和数值变量的分配来显示垂直方向的条带
sns.stripplot(data=tips, x="day", y="total_bill")
在 0.12 版本之前,分类变量的级别默认情况下具有不同的颜色。要获得相同的效果,请显式分配
hue
变量sns.stripplot(data=tips, x="total_bill", y="day", hue="day", legend=False)
或者,您可以为
hue
分配一个不同的变量以显示多维关系sns.stripplot(data=tips, x="total_bill", y="day", hue="sex")
如果
hue
变量是数值的,它将默认情况下使用定量调色板映射(请注意,在 0.12 版本之前并非如此)sns.stripplot(data=tips, x="total_bill", y="day", hue="size")
使用
palette
来控制颜色映射,包括通过传递定性调色板的名称来强制进行分类映射sns.stripplot(data=tips, x="total_bill", y="day", hue="size", palette="deep")
默认情况下,
hue
变量的不同级别在每个条带中相互交织,但设置dodge=True
将把它们分开sns.stripplot(data=tips, x="total_bill", y="day", hue="sex", dodge=True)
可以通过设置
jitter=False
来禁用随机抖动sns.stripplot(data=tips, x="total_bill", y="day", hue="sex", dodge=True, jitter=False)
如果以宽格式模式绘制,数据框的每个数值列将映射到
x
和hue
sns.stripplot(data=tips)
要更改宽格式模式下的方向,请显式传递
orient
sns.stripplot(data=tips, orient="h")
当两个轴变量都是数值时,
orient
参数也很有用,因为它将解决关于对哪个维度进行分组(和抖动)的歧义sns.stripplot(data=tips, x="total_bill", y="size", orient="h")
默认情况下,分类变量将映射到具有固定比例的离散索引 (0, 1, …) ,即使它是数值的
sns.stripplot( data=tips.query("size in [2, 3, 5]"), x="total_bill", y="size", orient="h", )
要禁用此行为并使用变量的原始比例,请设置
native_scale=True
sns.stripplot( data=tips.query("size in [2, 3, 5]"), x="total_bill", y="size", orient="h", native_scale=True, )
通过传递
matplotlib.axes.Axes.scatter()
的关键字参数可以实现进一步的视觉定制sns.stripplot( data=tips, x="total_bill", y="day", hue="time", jitter=False, s=20, marker="D", linewidth=1, alpha=.1, )
要制作具有多个面的图,最好使用
catplot()
而不是直接使用FacetGrid
,因为catplot()
将确保分类变量和色调变量在每个面中都正确同步sns.catplot(data=tips, x="time", y="total_bill", hue="sex", col="day", aspect=.5)