seaborn.JointGrid.__init__#
- JointGrid.__init__(data=None, *, x=None, y=None, hue=None, height=6, ratio=5, space=0.2, palette=None, hue_order=None, hue_norm=None, dropna=False, xlim=None, ylim=None, marginal_ticks=False)#
设置子图网格并存储内部数据以方便绘图。
- 参数:
- data
pandas.DataFrame
,numpy.ndarray
, 映射或序列 输入数据结构。可以分配给命名变量的向量长形式集合,或者将被内部重新整形为宽形式数据集。
- x, y向量或
data
中的键 指定 x 和 y 轴位置的变量。
- height数字
每个图形边长(它将为正方形)的英寸大小。
- ratio数字
联合轴高度与边际轴高度的比率。
- space数字
联合轴和边际轴之间的空间
- dropna布尔值
如果为 True,则在绘图之前删除缺失的观察值。
- {x, y}lim数字对
在绘图之前将轴限制设置为这些值。
- marginal_ticks布尔值
如果为 False,则抑制边际图中计数/密度轴上的刻度。
- hue向量或
data
中的键 确定绘图元素颜色的语义变量。注意:与
FacetGrid
或PairGrid
不同,轴级函数必须支持hue
才能在JointGrid
中使用它。- palette字符串、列表、字典或
matplotlib.colors.Colormap
在映射
hue
语义时选择要使用的颜色的方法。字符串值被传递给color_palette()
。列表或字典值表示分类映射,而颜色图对象表示数字映射。- hue_order字符串向量
指定
hue
语义的分类级别的处理和绘图顺序。- hue_norm元组或
matplotlib.colors.Normalize
可以是设置数据单位中归一化范围的一对值,也可以是将数据单位映射到 [0, 1] 区间的对象。使用表示数字映射。
- data
示例
调用构造函数会初始化图形,但不会绘制任何内容
penguins = sns.load_dataset("penguins") sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm")
最简单的绘图方法,
JointGrid.plot()
接受一对函数(一个用于联合轴,一个用于两个边际轴)g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm") g.plot(sns.scatterplot, sns.histplot)
JointGrid.plot()
函数还接受其他关键字参数,但它将它们传递给两个函数g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm") g.plot(sns.scatterplot, sns.histplot, alpha=.7, edgecolor=".2", linewidth=.5)
如果需要将不同的关键字参数传递给每个函数,则需要调用
JointGrid.plot_joint()
和JointGrid.plot_marginals()
g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm") g.plot_joint(sns.scatterplot, s=100, alpha=.5) g.plot_marginals(sns.histplot, kde=True)
你也可以在不分配任何数据的情况下设置网格
g = sns.JointGrid()
然后可以通过访问
ax_joint
、ax_marg_x
和ax_marg_y
属性进行绘图,这些属性是matplotlib.axes.Axes
对象g = sns.JointGrid() x, y = penguins["bill_length_mm"], penguins["bill_depth_mm"] sns.scatterplot(x=x, y=y, ec="b", fc="none", s=100, linewidth=1.5, ax=g.ax_joint) sns.histplot(x=x, fill=False, linewidth=2, ax=g.ax_marg_x) sns.kdeplot(y=y, linewidth=2, ax=g.ax_marg_y)
绘图方法可以使用任何接受
x
和y
变量的 seaborn 函数g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm") g.plot(sns.regplot, sns.boxplot)
如果函数接受
hue
变量,则可以在调用构造函数时分配hue
来使用它g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm", hue="species") g.plot(sns.scatterplot, sns.histplot)
可以使用 :meth:
JointGrid.refline
在联合轴和/或边缘轴上添加水平和/或垂直参考线。g = sns.JointGrid(data=penguins, x="bill_length_mm", y="bill_depth_mm") g.plot(sns.scatterplot, sns.histplot) g.refline(x=45, y=16)
该图始终为正方形(除非您在 matplotlib 层中调整大小),但其整体大小和布局可配置。大小由
height
参数控制。联合轴和边缘轴之间的相对比例由ratio
控制,图之间间距由space
控制。sns.JointGrid(height=4, ratio=2, space=.05)
默认情况下,边缘图中密度轴上的刻度线被关闭,但这是可以配置的。
sns.JointGrid(marginal_ticks=True)
在设置图形时,还可以定义两个数据轴(在所有图中共享)的限制。
sns.JointGrid(xlim=(-2, 5), ylim=(0, 10))