Seaborn双变量分布jointplot的坐标轴标签设置

我采用jointplot()进行双变量分布绘图,但是没法通过plt.xlabel来修改它的坐标轴标签。下面是解决办法。

一、问题描述

我采用jointplot()进行双变量分布绘图:

1
sns.jointplot(x, y)

但是没法通过plt.xlabel来修改它的坐标轴标签。

二、解决办法

这里要用到JointGrid对象。

jointplot()函数基于JointGrid对象来控制图形。我们可以直接使用JointGrid来获得更高的灵活性。jointplot()在绘制完成后会返回一个JointGrid对象,我们可以通过它来增加更多图层或者调整其他细节。

下面是一个的修改jointplot()坐标轴标签的实例:

{cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

#example data
X = np.random.randn(1000,)
Y = 0.2 * np.random.randn(1000) + 0.5

h = sns.jointplot(X, Y)

# JointGrid has a convenience function
h.set_axis_labels('x', 'y', fontsize=16)

# or set labels via the axes objects
h.ax_joint.set_xlabel('new x label', fontweight='bold')

# also possible to manipulate the histogram plots this way, e.g.
h.ax_marg_y.grid('on')

# labels appear outside of plot area, so auto-adjust
plt.tight_layout()

plt.show()

如果采用plt.xlabel(“text”)方法,这个方法会作用在在当前ax上,而不是在sns.jointplot的ax上。因此需要用jointplot()返回的JointGrid对象来控制。

赞赏一杯咖啡
0%