10.md 7.5 KB
Newer Older
W
init  
wizardforcel 已提交
1 2
# seaborn.relplot

S
Stuming 已提交
3 4
> 译者:[Stuming](https://github.com/Stuming)

W
init  
wizardforcel 已提交
5 6 7 8
```py
seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=None, row=None, col=None, col_wrap=None, row_order=None, col_order=None, palette=None, hue_order=None, hue_norm=None, sizes=None, size_order=None, size_norm=None, markers=None, dashes=None, style_order=None, legend='brief', kind='scatter', height=5, aspect=1, facet_kws=None, **kwargs)
```

W
wizardforcel 已提交
9
绘制相关关系图像到 FacetGrid 的图像级别接口。
W
init  
wizardforcel 已提交
10

S
Stuming 已提交
11 12 13
此函数提供对一些不同轴级别函数的访问,这些函数通过子集的语义映射显示两个变量之间的关系。`kind`参数选择要使用的基础轴级函数:
*   [`scatterplot()`](seaborn.scatterplot.html#seaborn.scatterplot "seaborn.scatterplot") (通过`kind="scatter"`访问;默认为此)
*   [`lineplot()`](seaborn.lineplot.html#seaborn.lineplot "seaborn.lineplot") (通过`kind="line"`访问)
W
init  
wizardforcel 已提交
14

S
Stuming 已提交
15
额外的关键字参数会被传递给隐含的函数,因此使用时应当参考对应函数的文档去了解各种选项。
W
init  
wizardforcel 已提交
16

S
Stuming 已提交
17
对于数据不同子集的`x``y`的绘制关系可以通过`hue`, `size`以及`style`参数控制。这些参数控制使用哪些视觉语义来区分不同的子集。使用所有三个语义类型可以独立展示三个维度,但是这种方式得到的绘制结果难以被理解而且低效。使用多种语义(例如对相同变量同时使用`hue``style`)可以使图像更加易懂。
W
init  
wizardforcel 已提交
18

沈宇 已提交
19
参考[tutorial](http://seaborn.pydata.org/tutorial/relational.html#relational-tutorial)获得更多信息。
W
init  
wizardforcel 已提交
20

S
Stuming 已提交
21
绘制后,会返回带有图像的[`FacetGrid`](seaborn.FacetGrid.html#seaborn.FacetGrid "seaborn.FacetGrid"),随后可以直接进行图像细节调节或者加入其他图层。
W
init  
wizardforcel 已提交
22

W
wizardforcel 已提交
23
值得注意的是,与直接使用隐含函数的方式不同,数据必须以长格式的 DataFrame 传入,同时变量通过`x`, `y`及其他参数指定。
W
init  
wizardforcel 已提交
24

S
Stuming 已提交
25
参数:`x, y``data`中的变量名
W
init  
wizardforcel 已提交
26

S
Stuming 已提交
27
> 输入数据的变量;数据必须为数值型。
W
init  
wizardforcel 已提交
28

S
Stuming 已提交
29
`hue`: `data`中的名称,可选
W
init  
wizardforcel 已提交
30

S
Stuming 已提交
31
> 将会产生具有不同颜色的元素的变量进行分组。这些变量可以是类别变量或者数值型变量,尽管颜色映射在后面的情况中会有不同的表现。
W
init  
wizardforcel 已提交
32

S
Stuming 已提交
33
`size``data`中的名称,可选
W
init  
wizardforcel 已提交
34

S
Stuming 已提交
35
> 将会产生具有不同尺寸的元素的变量进行分组。这些变量可以是类别变量或者数值型变量,尽管尺寸映射在后面的情况中会有不同的表现。
W
init  
wizardforcel 已提交
36

S
Stuming 已提交
37
`style``data`中的名称,可选
W
init  
wizardforcel 已提交
38

S
Stuming 已提交
39
> 将会产生具有不同风格的元素的变量进行分组。这些变量可以为数值型,但是通常会被当做类别变量处理。
W
init  
wizardforcel 已提交
40

W
wizardforcel 已提交
41
`data`:DataFrame
W
init  
wizardforcel 已提交
42

W
wizardforcel 已提交
43
> 长格式的 DataFrame,每列是一个变量,每行是一个观察值。
W
init  
wizardforcel 已提交
44

S
Stuming 已提交
45
`row, col``data`中的变量名,可选
W
init  
wizardforcel 已提交
46

S
Stuming 已提交
47
> 确定网格的分面的类别变量。
W
init  
wizardforcel 已提交
48

S
Stuming 已提交
49
`col_wrap`:int, 可选
W
init  
wizardforcel 已提交
50

S
Stuming 已提交
51
> 以此宽度“包裹”列变量,以便列分面跨越多行。与`row`分面不兼容。
W
init  
wizardforcel 已提交
52

S
Stuming 已提交
53
`row_order, col_order`:字符串列表,可选
W
init  
wizardforcel 已提交
54

S
Stuming 已提交
55
> 以此顺序组织网格的行和/或列,否则顺序将从数据对象中推断。
W
init  
wizardforcel 已提交
56

S
Stuming 已提交
57
`palette`:色盘名,列表,或者字典,可选
W
init  
wizardforcel 已提交
58

W
wizardforcel 已提交
59
> 用于`hue`变量的不同级别的颜色。应当是[`color_palette()`](seaborn.color_palette.html#seaborn.color_palette "seaborn.color_palette")可以解释的东西,或者将色调级别映射到 matplotlib 颜色的字典。
W
init  
wizardforcel 已提交
60

S
Stuming 已提交
61
`hue_order`:列表,可选
W
init  
wizardforcel 已提交
62

S
Stuming 已提交
63
> 指定`hue`变量层级出现的顺序,否则会根据数据确定。当`hue`变量为数值型时与此无关。
W
init  
wizardforcel 已提交
64

W
wizardforcel 已提交
65
`hue_norm`:元组或者 Normalize 对象,可选
W
init  
wizardforcel 已提交
66

W
wizardforcel 已提交
67
> 当`hue`变量为数值型时,用于数据单元的 colormap 的标准化。如果`hue`为类别变量则与此无关。
W
init  
wizardforcel 已提交
68

S
Stuming 已提交
69
`sizes`:列表、典或者元组,可选
W
init  
wizardforcel 已提交
70

S
Stuming 已提交
71
> 当使用`sizes`时,用于确定如何选择尺寸。此变量可以一直是尺寸值的列表或者`size`变量的字典映射。当`size`为数值型时,此变量也可以是指定最小和最大尺寸的元组,这样可以将其他值标准化到这个范围。
W
init  
wizardforcel 已提交
72

S
Stuming 已提交
73
`size_order`:列表,可选
W
init  
wizardforcel 已提交
74

S
Stuming 已提交
75
> 指定`size`变量层次的表现顺序,不指定则会通过数据确定。当`size`变量为数值型时与此无关。
W
init  
wizardforcel 已提交
76

W
wizardforcel 已提交
77
`size_norm`:元组或者 Normalize 对象,可选
W
init  
wizardforcel 已提交
78

W
wizardforcel 已提交
79
> 当`size`变量为数值型时,用于数据单元的 scaling plot 对象的标准化。
W
init  
wizardforcel 已提交
80

W
wizardforcel 已提交
81
`legend`:“brief”, “full”, 或者 False, 可选
W
init  
wizardforcel 已提交
82

S
Stuming 已提交
83
> 用于决定如何绘制坐标轴。如果参数值为“brief”, 数值型的`hue`以及`size`变量将会被用等间隔采样值表示。如果参数值为“full”, 每组都会在坐标轴中被记录。如果参数值为“false”, 不会添加坐标轴数据,也不会绘制坐标轴。
W
init  
wizardforcel 已提交
84

S
Stuming 已提交
85
`kind`:string, 可选
W
init  
wizardforcel 已提交
86

W
wizardforcel 已提交
87
> 绘制图的类型,与 seaborn 相关的图一致。可选项为(`scatter`及`line`).
W
init  
wizardforcel 已提交
88

S
Stuming 已提交
89
`height`:标量, 可选
W
init  
wizardforcel 已提交
90

W
wizardforcel 已提交
91
> 每个 facet 的高度(英寸)。参见`aspect`。
W
init  
wizardforcel 已提交
92

S
Stuming 已提交
93
`aspect`:标量, 可选
W
init  
wizardforcel 已提交
94

W
wizardforcel 已提交
95
> 每个 facet 的长宽比,因此“长宽比*高度”可以得出每个 facet 的宽度(英寸)。
W
init  
wizardforcel 已提交
96

S
Stuming 已提交
97
`facet_kws`:dict, 可选
W
init  
wizardforcel 已提交
98

S
Stuming 已提交
99
> 以字典形式传给[`FacetGrid`](seaborn.FacetGrid.html#seaborn.FacetGrid "seaborn.FacetGrid")的其他关键字参数.
W
init  
wizardforcel 已提交
100

S
Stuming 已提交
101
`kwargs`:键值对
W
init  
wizardforcel 已提交
102

S
Stuming 已提交
103
> 传给后续绘制函数的其他关键字参数。
W
init  
wizardforcel 已提交
104

W
wizardforcel 已提交
105 106

返回值:`g`[`FacetGrid`](seaborn.FacetGrid.html#seaborn.FacetGrid "seaborn.FacetGrid")
W
init  
wizardforcel 已提交
107

S
Stuming 已提交
108
> 返回包含图像的[`FacetGrid`](seaborn.FacetGrid.html#seaborn.FacetGrid "seaborn.FacetGrid")对象,图像可以进一步调整。
W
init  
wizardforcel 已提交
109

W
wizardforcel 已提交
110

W
init  
wizardforcel 已提交
111

S
Stuming 已提交
112
示例
W
init  
wizardforcel 已提交
113

W
wizardforcel 已提交
114
使用[`FacetGrid`](seaborn.FacetGrid.html#seaborn.FacetGrid "seaborn.FacetGrid")的坐标轴布局绘制简单的 facet。
W
init  
wizardforcel 已提交
115 116 117 118 119 120 121 122 123 124 125

```py
>>> import seaborn as sns
>>> sns.set(style="ticks")
>>> tips = sns.load_dataset("tips")
>>> g = sns.relplot(x="total_bill", y="tip", hue="day", data=tips)

```

![http://seaborn.pydata.org/_images/seaborn-relplot-1.png](img/1c7fa44b0679b71a3e8e8a4e26d75963.jpg)

W
wizardforcel 已提交
126
利用其他变量绘制 facet:
W
init  
wizardforcel 已提交
127 128 129 130 131 132 133 134 135

```py
>>> g = sns.relplot(x="total_bill", y="tip",
...                 hue="day", col="time", data=tips)

```

![http://seaborn.pydata.org/_images/seaborn-relplot-2.png](img/f0eb2f840a13f8dbd2b829e6bb51c4af.jpg)

W
wizardforcel 已提交
136
绘制两行两列的 facet:
W
init  
wizardforcel 已提交
137 138 139 140 141 142 143 144 145

```py
>>> g = sns.relplot(x="total_bill", y="tip", hue="day",
...                 col="time", row="sex", data=tips)

```

![http://seaborn.pydata.org/_images/seaborn-relplot-3.png](img/e6f2f0c866185be9801d43c59f348826.jpg)

W
wizardforcel 已提交
146
将多行 facets 转换为多列:
W
init  
wizardforcel 已提交
147 148 149 150 151 152 153 154 155

```py
>>> g = sns.relplot(x="total_bill", y="tip", hue="time",
...                 col="day", col_wrap=2, data=tips)

```

![http://seaborn.pydata.org/_images/seaborn-relplot-4.png](img/a89db144a2f030e70603b92ba8728326.jpg)

W
wizardforcel 已提交
156
利用指定的属性值对每个 facet 使用多种语义变量:
W
init  
wizardforcel 已提交
157 158 159 160 161 162 163 164 165 166

```py
>>> g = sns.relplot(x="total_bill", y="tip", hue="time", size="size",
...                 palette=["b", "r"], sizes=(10, 100),
...                 col="time", data=tips)

```

![http://seaborn.pydata.org/_images/seaborn-relplot-5.png](img/79d93fb6cd8974ec779ead1b35e2aad1.jpg)

S
Stuming 已提交
167
使用不同类型的图:
W
init  
wizardforcel 已提交
168 169 170 171 172 173 174 175 176 177 178

```py
>>> fmri = sns.load_dataset("fmri")
>>> g = sns.relplot(x="timepoint", y="signal",
...                 hue="event", style="event", col="region",
...                 kind="line", data=fmri)

```

![http://seaborn.pydata.org/_images/seaborn-relplot-6.png](img/f14f4331afb42bd5512f2c24a5140604.jpg)

W
wizardforcel 已提交
179
改变每个 facet 的大小:
W
init  
wizardforcel 已提交
180 181 182 183 184 185 186 187 188

```py
>>> g = sns.relplot(x="timepoint", y="signal",
...                 hue="event", style="event", col="region",
...                 height=5, aspect=.7, kind="line", data=fmri)

```

![http://seaborn.pydata.org/_images/seaborn-relplot-7.png](img/bcbb773f27f65051374518d1d859a486.jpg)