1、使用 scatterplot 绘制双变量分布
scatterplot()
函数用于绘制双变量分布图形,通常用于研究两个变量之间的关系。使用scatterplot()函数可以绘制两个变量之间的散点图。常用参数如下,
参数 | 描述 |
x | x轴上的数据。 |
y | y轴上的数据。 |
hue | 用于分组数据的列名,不同组使用不同颜色。 |
style | 用于区分不同组的列名,不同组使用不同标记样式。 |
size | 表示数据点大小的列名,根据列值调整数据点大小。 |
data | 包含数据的DataFrame。 |
palette | 调色板,用于设置颜色。 |
sizes | 用于设置不同大小的数据点。 |
estimator | 用于每个分组内计算统计量的函数,如 numpy.mean 。 |
ci | 置信区间的大小。 |
markers | 控制是否显示标记。 |
x_jitter | 控制x轴上的抖动。 |
y_jitter | 控制y轴上的抖动。 |
legend | 控制图例的显示方式。 |
ax | 绘图的Axes对象,可指定图形绘制位置。 |
使用示例:
import seaborn as sns
import matplotlib.pyplot as plt
# 示例数据
import pandas as pd
data = pd.DataFrame({
"X": [1, 2, 3, 4, 5],
"Y": [2, 4, 1, 3, 5],
"Group": ["A", "A", "B", "B", "C"],
"Size": [10, 20, 30, 40, 50]
})
# 创建散点图
sns.scatterplot(x="X", y="Y", hue="Group", style="Group", size="Size", data=data, palette="Set1", sizes=(100, 200), legend="full")
# 添加标题
plt.title("cjavapy")
# 显示图例
plt.legend(title="Groups")
# 使用 plt.draw() 显示画布
plt.draw()
# 显示图形
plt.show()
2、使用 jointplot 绘制双变量分布
jointplot()
函数用于绘制双变量分布图,通常用于可视化两个变量之间的关系。可以根据自己的数据和需求来调整这些参数,以创建不同类型的双变量分布图。常用参数如下,
参数 | 描述 |
x | 指定 x 轴的数据 |
y | 指定 y 轴的数据 |
data | 包含数据的 DataFrame |
kind | 绘图的类型{ “scatter” | “kde” | “hist” | “hex” | “reg” | “resid” } |
color | 指定绘图的颜色 |
height | 图形的高度 |
ratio | 联合图中散点图和轴的高宽比 |
space | 联合图中轴之间的空间 |
dropna | 是否删除包含 NaN 值的行 |
xlim 和 ylim | 设置 x 和 y 轴的限制 |
joint_kws | 传递给散点图或其他绘图类型的其他参数 |
使用示例:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# 创建一个示例数据集
data = pd.DataFrame({
'sepal_length': [5.1, 4.9, 4.7, 4.6, 5.0],
'sepal_width': [3.5, 3.0, 3.2, 3.1, 3.6],
'petal_length': [1.4, 1.4, 1.3, 1.5, 1.4],
'petal_width': [0.2, 0.2, 0.2, 0.2, 0.2],
'species': ['C#', 'JAVA', 'Python', 'C#', 'Python']
})
# 使用 jointplot() 绘制双变量分布图
sns.jointplot(
x="sepal_length",
y="petal_length",
data=data,
kind="scatter",
color="b",
height=6,
ratio=5,
space=0.2,
dropna=True,
xlim=(4, 8), # 设置 x 轴的限制
ylim=(1, 7), # 设置 y 轴的限制
joint_kws={"s": 50} # 传递给散点图的额外参数
)
# 显示图形
plt.show()
3、使用 pairplot 绘制双变量分布
当同时查看多个双变量分布时,pairplot()
函数非常有用。它会创建一个网格,展示数据集中每对变量的关系。pairplot()
函数用于绘制数据集中多个变量之间的关系图,通常用于研究变量之间的相关性。常用参数如下,
参数 | 描述 |
data | 包含数据的 DataFrame 对象 |
hue | 用于分组数据的列名 |
vars | 要绘制的特定列的列表,如果为 None,则绘制所有列 |
kind | 图的类型{‘scatter’, ‘kde’, ‘hist’, ‘reg’} |
diag_kind | 对角线上的图的类型{‘auto’, ‘hist’, ‘kde’, None} |
markers | 不同组的数据点标记样式 |
palette | 调色板名称或颜色映射,用于控制不同组的颜色 |
height | 每个子图的高度(以英寸为单位) |
aspect | 每个子图的宽高比 |
plot_kws | 传递给绘图函数的其他关键字参数 |
diag_kws | 传递给对角线图的其他关键字参数 |
使用示例:
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
# 导入数据集
iris = pd.DataFrame({
'sepal_length': [5.1, 4.9, 4.7, 4.6, 5.0],
'sepal_width': [3.5, 3.0, 3.2, 3.1, 3.6],
'petal_length': [1.4, 1.4, 1.3, 1.5, 1.4],
'petal_width': [0.2, 0.2, 0.2, 0.2, 0.2],
'species': ['C#', 'JAVA', 'Python', 'C#', 'Python']
})
# 使用 pairplot 创建双变量分布图
sns.pairplot(iris,
hue="species", # 按照鸢尾花的种类分组并着色
markers=["o", "s", "D"], # 不同种类的数据点使用不同标记样式
palette="Set1", # 使用颜色调色板 "Set1"
diag_kind="kde", # 对角线上使用核密度估计图
height=2.5, # 每个子图的高度
aspect=1.2) # 宽高比
# 添加标题
plt.suptitle("cjavapy", y=1.02)
# 显示图形
plt.show()