【Python&Seaborn】Seaborn绘画(以sklearn的鸢尾花数据集为例)

【Python&Seaborn】Seaborn绘画(以sklearn的鸢尾花数据集为例)

在数据分析和可视化领域,数据集的统计图形是一种强大的工具,可以帮助我们更好地理解数据的分布、趋势和关系。本文将介绍如何使用Python中的Seaborn库绘制鸢尾花数据集的各种统计图形,包括条形图、计数图、散点图、箱图、小提琴图、多变量曲线图和热图。

引入库文件,配置和加载数据

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.datasets import load_iris
import warnings

warnings.filterwarnings('ignore')

pd.set_option('expand_frame_repr', False)
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文字体为黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决负号'-'显示为方块的问题

# 加载数据
iris = load_iris()
X = iris.data  # 特征向量
y = iris.target  # 类别标签

# 将特征向量和类别标签合并为一个DataFrame
df = pd.DataFrame(X, columns=iris.feature_names)
df['target'] = y
print(df)

绘制条形图

sns.barplot(x='target', y='sepal length (cm)', data=df)
plt.title('鸢尾花条形图')
plt.savefig('seaborn图/鸢尾花条形图.png')
plt.show()

在这里插入图片描述

绘制计数图

sns.countplot(x='petal width (cm)', hue='target', data=df)
plt.title('鸢尾花计数图')
plt.xticks(rotation=45)
plt.savefig('seaborn图/鸢尾花计数图.png')
plt.show()

在这里插入图片描述

绘制计数图2

sns.countplot(y='petal width (cm)', hue='target', data=df)
plt.title('鸢尾花计数图2')
plt.savefig('seaborn图/鸢尾花计数图2.png')
plt.show()

在这里插入图片描述

绘制散点图

sns.stripplot(x='target', y='sepal length (cm)', data=df, palette=['red', 'orange', 'green'])
plt.title('鸢尾花散点图')
plt.savefig('seaborn图/鸢尾花散点图.png')
plt.show()

在这里插入图片描述

绘制散点图2

sns.swarmplot(x='target', y='sepal length (cm)', data=df, palette=['red', 'orange', 'green'])
plt.title('鸢尾花散点图2')
plt.savefig('seaborn图/鸢尾花散点图2.png')
plt.show()

在这里插入图片描述

绘制箱图

sns.boxplot(x='target', y='sepal length (cm)', data=df)
plt.title('鸢尾花箱图')
plt.savefig('seaborn图/鸢尾花箱图.png')
plt.show()

在这里插入图片描述

绘制箱图2

sns.boxplot(x='sepal length (cm)', y='target', data=df, orient='h')
plt.title('鸢尾花箱图2')
plt.savefig('seaborn图/鸢尾花箱图2.png')
plt.show()

在这里插入图片描述

绘小提琴图

sns.violinplot(x='target', y='sepal length (cm)', data=df)
plt.title('鸢尾花小提琴图')
plt.savefig('seaborn图/鸢尾花小提琴图.png')
plt.show()

在这里插入图片描述

绘小提琴图2

sns.violinplot(x='target', y='sepal length (cm)', data=df, split=True, inner='stick')
plt.title('鸢尾花小提琴图2')
plt.savefig('seaborn图/鸢尾花小提琴图2.png')
plt.show()

在这里插入图片描述

设置中文字体为微软雅黑

sns.set(font="Microsoft YaHei", style="whitegrid")

鸢尾花小提琴图展示特征与品种关系

f, axes = plt.subplots(2,2,figsize=(8,8),sharex=True)
sns.despine(left=True)
sns.violinplot(x='target', y='sepal length (cm)', data=df, ax=axes[0, 0])
sns.violinplot(x='target', y='sepal width (cm)', data=df, ax=axes[0, 1])
sns.violinplot(x='target', y='petal length (cm)', data=df, ax=axes[1, 0])
sns.violinplot(x='target', y='petal width (cm)', data=df, ax=axes[1, 1])
plt.suptitle('鸢尾花小提琴图展示特征与品种关系', fontsize=20)
plt.savefig('seaborn图/鸢尾花小提琴图展示特征与品种关系.png')
plt.show()

在这里插入图片描述

点线图展示特征与品种关系

f, axes = plt.subplots(2,2,figsize=(8,8),sharex=True)
sns.despine(left=True)
sns.pointplot(x='target', y='sepal length (cm)', data=df, ax=axes[0, 0])
sns.pointplot(x='target', y='sepal width (cm)', data=df, ax=axes[0, 1])
sns.pointplot(x='target', y='petal length (cm)', data=df, ax=axes[1, 0])
sns.pointplot(x='target', y='petal width (cm)', data=df, ax=axes[1, 1])
plt.suptitle('鸢尾花点线图展示特征与品种关系', fontsize=20)
plt.savefig('seaborn图/鸢尾花点线图展示特征与品种关系.png')
plt.show()

在这里插入图片描述

各特征之间关系的矩阵图

g = sns.pairplot(data=df, hue='target', palette=['yellow', 'green', 'blue'], height=1.85, aspect=1.65)
plt.suptitle('鸢尾花各特征之间关系的矩阵图', fontsize=20)
plt.tight_layout()
plt.savefig('seaborn图/鸢尾花各特征之间关系的矩阵图.png')
plt.show()

在这里插入图片描述

多变量曲线图

plt.subplots(figsize=(10, 8))
pd.plotting.andrews_curves(df, 'target', colormap='cool')
plt.suptitle('鸢尾花多变量曲线图', fontsize=20)
plt.savefig('seaborn图/鸢尾花多变量曲线图.png')
plt.show()

在这里插入图片描述

热图

fig = plt.gcf()
fig.set_size_inches(12, 8)
fig=sns.heatmap(df.corr(), annot=True, cmap='Blues',
                linewidths=1, linecolor='k', square=True,
                mask=False, vmin=1, vmax=1,
                cbar_kws={'orientation':'vertical'}, cbar=True)
plt.suptitle('鸢尾花热图', fontsize=20)
plt.savefig('seaborn图/鸢尾花热图.png')
plt.show()

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strangequark

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值