使用SeaBorn 和 Pandas 创建散点图
散点图是一种常见的数据可视化形式,通常用于分析两个变量之间的关系。Python中使用SeaBorn和Pandas库可以轻松地创建各种类型的散点图。
准备数据
在开始绘制散点图之前,首先需要准备一些数据。Pandas库非常适合数据处理,我们可以使用Pandas读取和处理数据。在这里,我们使用的数据是关于花的基本属性(花萼长度、花瓣长度、花萼宽度和花瓣宽度)以及花的种类(Setosa、Versicolor、Virginica)的鸢尾花数据集。
以下是用Pandas读取鸢尾花数据集的代码:
import pandas as pd
# 读取鸢尾花数据集
data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data",
names=["sepal_length", "sepal_width", "petal_length", "petal_width", "class"])
创建基本散点图
使用Seaborn和Pandas可以创建各种类型的散点图,包括基本散点图、多类别散点图等。首先,我们来看一下如何创建基本散点图。
Seaborn库是基于matplotlib库的,它提供了一些更高级的绘图方法,可以使得绘图更加简单和美观。
以下是创建基本散点图的代码:
import seaborn as sns
import matplotlib.pyplot as plt
# 设置风格
sns.set(style="white", color_codes=True)
# 创建散点图
sns.scatterplot(x="sepal_length", y="sepal_width", data=data)
# 显示图形
plt.show()
上述代码中,首先设置了Seaborn的风格,然后使用sns.scatterplot函数创建了一个散点图,其中指定了横轴为花萼长度,纵轴为花萼宽度,数据来源于读取的鸢尾花数据集。最后使用plt.show()函数显示图形。
好了,运行上述代码,我们就得到了一幅简单的散点图
添加颜色和样式
我们可以通过添加不同的颜色和样式,来展示不同的数据列或者区分数据点。
以下是添加不同颜色和样式的代码:
# 按照花的种类用不同颜色绘制散点图
sns.scatterplot(x="sepal_length", y="sepal_width", hue="class", data=data)
# 显示图形
plt.show()
上述代码中,通过添加hue
参数,将花的种类作为分类变量,不同种类的花将使用不同的颜色绘制。
我们还可以使用不同的样式来表示不同的数据列。以下是添加不同样式的代码:
# 按照花的种类用不同颜色和不同样式绘制散点图
sns.scatterplot(x="sepal_length", y="sepal_width", style="class", hue="class", data=data)
# 显示图形
plt.show()
上述代码中,通过添加style
参数,将花的种类作为分类变量,不同种类的花将使用不同的样式绘制。
添加回归线
除了散点图之外,我们还可以添加一条回归线来进一步分析数据变量的关系。
以下是添加回归线的代码:
# 添加回归线
sns.lmplot(x="sepal_length", y="sepal_width", data=data)
#显示图形
plt.show()
上述代码中,使用lmplot
函数来添加回归线,其中x和y参数指定了横轴和纵轴的变量名。
运行上述代码,我们得到了一张带有回归线的散点图
添加子图
有时候我们需要在同一张图中展示不同的散点图,或者将散点图和其他类型的图像并列展示。这时,我们可以使用Seaborn的子图功能。
以下是添加子图的代码:
# 添加子图
fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(10, 4))
# 绘制子图1
sns.scatterplot(x="sepal_length", y="sepal_width", hue="class", data=data, ax=ax1)
# 绘制子图2
sns.scatterplot(x="petal_length", y="petal_width", hue="class", data=data, ax=ax2)
# 显示图形
plt.show()
上述代码中,使用plt.subplots
函数创建了一个包含2个子图的图形,并将子图对象分别保存到ax1和ax2变量中。然后通过添加hue参数和不同的横轴和纵轴变量,在不同的子图中绘制了两个散点图。
运行上述代码,我们得到了一张包含两个子图的图形
结论
使用SeaBorn和Pandas能够轻松地创建不同类型的散点图,从而帮助我们更好地分析和展示数据。在使用SeaBorn和Pandas创建散点图时,我们可以添加颜色、样式和回归线,也可以使用子图来组合不同的图像,从而满足不同的需求。