Python数据可视化实战:用Iris数据集教你玩转散点图、直方图与箱线图(附完整代码)

Python-鸢尾花数据集Iris 数据可视化 :读取数据、显示数据、描述性统计、散点图、直方图、KDE图、箱线图 本博客运行环境为Jupyter Notebook、Python3。使用的数据集是鸢尾花数据集(Iris)。主要叙述的是数据可视化。 IRIS数据集以鸢尾花的特征作为数据来源,数据集包含150个数据集,有4维,分为3 类,每类50个数据,每个数据包含4个属性,是在数据挖掘、数据分类中常用的测试集、训练集。 读取数据包括sklearn库引入和读取.csv文件保存的数据集。 显示数据包括显示具体数据、查... 阅读详情

Python数据可视化实战:用Iris数据集玩转三大基础图表

鸢尾花数据集(Iris)就像数据科学界的"Hello World",150朵鸢尾花的测量数据包含了花萼长度、花萼宽度、花瓣长度和花瓣宽度四个特征。这个经典数据集不仅是机器学习入门的标配,更是数据可视化的绝佳练手材料。今天我们就用这个数据集,带你玩转Python中最实用的三种基础图表——散点图、直方图和箱线图。无论你是刚接触Python的数据分析新手,还是想巩固可视化基础的中级开发者,这篇实战指南都能让你快速掌握这些核心技能。

1. 环境准备与数据加载

1.1 安装必要库

在开始之前,确保你的Python环境已经安装了以下核心库:

pip install numpy pandas matplotlib seaborn scikit-learn

小技巧:如果你使用Jupyter Notebook,可以在代码单元格开头添加%matplotlib inline魔法命令,让图表直接显示在笔记本中。

1.2 加载Iris数据集

从scikit-learn加载数据集是最简单的方式:

from sklearn import datasets
import pandas as pd

# 加载数据集
iris = datasets.load_iris()
# 转换为DataFrame
df = pd.DataFrame(iris.data, columns=iris.feature_names)
# 添加目标列
df['species'] = [iris.target_names[i] for i in iris.target]

检查数据前五行:

print(df.head())

输出示例:

   sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  species
0                5.1               3.5                1.4               0.2   setosa
1                4.9               3.0                1.4               0.2   setosa
2                4.7               3.2                1.3               0.2   setosa
3                4.6               3.1                1.5               0.2   setosa
4                5.0               3.6                1.4               0.2   setosa

2. 散点图:探索特征间关系

2.1 基础散点图绘制

散点图是探索两个连续变量关系的首选工具。让我们看看花萼长度和宽度的关系:

import matplotlib.pyplot as plt

plt.figure(figsize=(8, 6))
plt.scatter(df['sepal length (cm)'], df['sepal width (cm)'], c='blue', alpha=0.5)
plt.title('花萼长度 vs 花萼宽度')
plt.xlabel('花萼长度 (cm)')
plt.ylabel('花萼宽度 (cm)')
plt.grid(True)
plt.show()

2.2 分类着色散点图

更高级的做法是按鸢尾花种类着色:

colors = {'setosa':'red', 'versicolor':'green', 'virginica':'blue'}
plt.figure(figsize=(10, 8))

for species, group in df.groupby('species'):
    plt.scatter(group['petal length (cm)'], 
                group['petal width (cm)'], 
                color=colors[species],
                label=species,
                alpha=0.7)

plt.title('花瓣长度 vs 花瓣宽度(按种类着色)')
plt.xlabel('花瓣长度 (cm)')
plt.ylabel('花瓣宽度 (cm)')
plt.legend()
plt.grid(True)
plt.show()

观察发现:setosa的花瓣尺寸明显小于其他两类,而virginica和versicolor在花瓣尺寸上有部分重叠。

3. 直方图:理解数据分布

3.1 单变量分布直方图

直方图能直观展示单个特征的分布情况:

plt.figure(figsize=(10, 6))
plt.hist(df['sepal length (cm)'], bins=15, color='skyblue', edgecolor='black')
plt.title('花萼长度分布直方图')
plt.xlabel('花萼长度 (cm)')
plt.ylabel('频数')
plt.grid(axis='y', alpha=0.75)
plt.show()

3.2 多子图直方图比较

比较不同种类鸢尾花的花萼长度分布:

fig, ax = plt.subplots(1, 3, figsize=(18, 5))

for i, species in enumerate(df['species'].unique()):
    ax[i].hist(df[df['species']==species]['sepal length (cm)'], 
               bins=12, color=list(colors.values())[i], alpha=0.7)
    ax[i].set_title(f'{species}的花萼长度分布')
    ax[i].set_xlabel('花萼长度 (cm)')
    ax[i].set_ylabel('频数')
    ax[i].grid(True)

plt.tight_layout()
plt.show()

专业提示:直方图的bin数量选择会影响分布形态的呈现。一般可以使用以下公式估算最佳bin数:

import numpy as np
bin_count = int(np.sqrt(len(df)))  # 平方根法则

4. 箱线图:洞察数据统计特征

4.1 单变量箱线图

箱线图能一目了然地展示数据的五个关键统计量:

plt.figure(figsize=(8, 6))
plt.boxplot(df['petal width (cm)'], vert=False, patch_artist=True)
plt.title('花瓣宽度箱线图')
plt.xlabel('花瓣宽度 (cm)')
plt.yticks([])
plt.grid(axis='x')
plt.show()

4.2 多变量分类箱线图

比较不同种类鸢尾花的花瓣宽度分布:

plt.figure(figsize=(10, 7))
df.boxplot(column='petal width (cm)', by='species', grid=False, 
           patch_artist=True,
           boxprops={'facecolor':'lightblue'},
           medianprops={'color':'red'})
plt.title('不同种类鸢尾花的花瓣宽度比较')
plt.suptitle('')  # 移除自动生成的标题
plt.xlabel('鸢尾花种类')
plt.ylabel('花瓣宽度 (cm)')
plt.grid(axis='y')
plt.show()

4.3 解读箱线图的关键元素

一个完整的箱线图包含以下信息:

元素说明统计意义
上须线箱子上方的线Q3 + 1.5×IQR 或最大值(取较小者)
箱子顶部箱子上边界第三四分位数(Q3)
箱中线箱子中间的线中位数(Q2)
箱子底部箱子下边界第一四分位数(Q1)
下须线箱子下方的线Q1 - 1.5×IQR 或最小值(取较大者)
离群点须线外的点异常值

5. 高级技巧:图表组合与美化

5.1 散点图矩阵

使用seaborn库可以轻松创建散点图矩阵:

import seaborn as sns

sns.set(style='ticks')
sns.pairplot(df, hue='species', palette=colors, height=2.5)
plt.show()

5.2 直方图与密度曲线叠加

plt.figure(figsize=(10, 6))
sns.histplot(data=df, x='sepal length (cm)', hue='species', 
             element='step', stat='density', common_norm=False)
sns.kdeplot(data=df, x='sepal length (cm)', hue='species', 
            common_norm=False)
plt.title('花萼长度分布(直方图+KDE)')
plt.xlabel('花萼长度 (cm)')
plt.grid(True)
plt.show()

5.3 图表美化技巧

几个提升图表专业度的实用技巧:

  • 字体与尺寸:增大标题和标签字体
plt.rcParams.update({'font.size': 12})
  • 颜色方案:使用专业配色
colors = sns.color_palette('husl', 3)
  • 图表布局:调整边距防止标签被截断
plt.tight_layout()
  • 保存高清图:
plt.savefig('plot.png', dpi=300, bbox_inches='tight')
数据可视化四大核心图表:箱线图、直方图、散点图与联合分布图实战指南 数据可视化是数据分析领域的关键技术,它通过图形化手段将复杂数据转化为直观洞察,是连接数据与决策的桥梁。其核心原理在于利用人类视觉系统的高效模式识别能力,揭示数据内在的分布、趋势与关联。在技术价值层面,优秀的可视化能极大提升探索性数据分析(EDA)的效率,辅助模型诊断,并成为结果沟通的通用语言。无论是业务汇报、异常检测还是相关性研究,掌握基础图表都至关重要。本文聚焦于**箱线图**和**直方图**这两大基石,深入解析其统计原理、适用场景与实战技巧,帮助读者构建坚实的数据探索能力,并自然延伸到多维关系的分析中。 阅读详情

相关推荐

Jupyter完成Iris数据集的 Fisher线性分类和数据可视化技术

文章目录一.Iris数据集的 Fisher线性分类判断准确率1.代码:2.结果:二.数据可视化1.数据显示2.描述性统计3.特征计数三.特征工程1.绘制花萼的长度与宽度的散点图2.绘制花瓣的长度与宽度的散点图3.关系图4.散点图与直方图5.箱线图6.绘制琴图7.绘制分布图 一.Iris数据集的 Fisher线性分类判断准确率 1.代码: import pandas as pd import num...

易与天行的博客 1170

Iris数据集的 Fisher线性分类以及数据可视化

这里写目录标题用Jupyter完成Iris数据集的 Fisher线性分类,并学习数据可视化技术 。一、数据可视化1、数据概览1.1、读取文件1.2、前五行数据1.3、后五行数据1.4、查看数据整体信息1.5、描述性统计1.6、对每种特征计数2、特征工程2.1、去掉Species下的字符2.2、绘制花萼的长度与宽度的散点图 用Jupyter完成Iris数据集的 Fisher线性分类,并学习数据可视化...

missbearC的博客 4431

Python实战:Iris数据集可视化全解析——从数据加载到高级图表展示

本文详细解析了如何使用Python对Iris数据集进行数据可视化,从基础的数据加载到高级图表展示。通过散点图、直方图、箱线图等多种可视化方法,全面探索数据特征及其关系,帮助读者掌握数据科学中的核心可视化技巧。文章还提供了实战技巧和常见问题解决方案,适合数据科学初学者和从业者参考。

weixin_30790841的博客 438

python花瓣长度和花瓣宽度散点图鸢尾花_Python-鸢尾花数据集Iris 数据可视化 :读取数据、显示数据、描述性统计、散点图、直方图、KDE图、箱线图...

本博客运行环境为Jupyter Notebook、Python3。使用的数据集是鸢尾花数据集(Iris)。主要叙述的是数据可视化。IRIS数据集以鸢尾花的特征作为数据来源,数据集包含150个数据集,有4维,分为3 类,每类50个数据,每个数据包含4个属性,是在数据挖掘、数据分类中常用的测试集、训练集。读取数据包括sklearn库引入和读取.csv文件保存的数据集。显示数据包括显示具体数据、查看整体...

weixin_39600400的博客 2598

线性分类器理论基础、Fisher判别算法、Iris数据集实战

目录一、Fisher判别1.算法描述2.python代码实现算法二、类间散度矩阵和类内散度矩阵1.类内散度矩阵2.类间散度矩阵3.总体散度矩阵 一、Fisher判别 1.算法描述 Fisher线性判别分析的基本思想:选择一个投影方向(线性变换,线性组合),将高维问题降低到一维问题来解决,同时变换后的一维数据满足每一类内部的样本尽可能聚集在一起,不同类的样本相隔尽可能地远。 Fisher线性判别分析...

sanyiji的博客 1932

用Python玩转Iris数据集:从数据加载到可视化分析的完整指南

本文提供了使用Python处理Iris数据集的完整指南,从数据加载到可视化分析,涵盖了机器学习基础流程。通过pandas和matplotlib库,读者将学习数据清洗、探索性分析和多种可视化技术,揭示鸢尾花数据背后的分类规律。适合数据分析新手和机器学习爱好者快速掌握核心技能。

weixin_29062613的博客 182

Iris数据集实战

Iris 数据可视化 下载seaborn库 pip install seaborn 读取文件 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt df_Iris = pd.read_csv(r'iris.data.txt') 数据可视化 花萼长度与宽度/花瓣长度与宽度的可视化 from collec...

Ray_Songaaa的博客 1033

人工智能基础学习: 用Jupyter完成Iris数据集的 Fisher线性分类,并学习数据可视化技术

jupyter完成Iris数据集的Fisher线性分类并可视化一级目录二级目录三级目录 一级目录 二级目录 三级目录

A981012的博客 1680

iris数据_Python实战——Iris数据集实战

本次主要围绕Iris数据集进行一个简单的数据分析, 另外在数据的可视化部分进行了重点介绍.环境win10, python3.7, jupyter notebook目录1. 项目背景2. 数据概览3. 特征工程4. 构建模型正文1. 项目背景鸢尾属(拉丁学名:Iris L.), 单子叶植物纲, 鸢尾科多年生草本植物, 开的花大而美丽, 观赏价值很高. 鸢尾属约300种, Iris数据集中包含了其中的...

weixin_39552874的博客 4367

R语言中对iris数据集的可视化

Iris数据集是机器学习中常用的经典数据集之一,它包含了150个样本,每个样本有4个特征:花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)和花瓣宽度(petal width)。Iris数据集是机器学习中常用的经典数据集之一,它包含了150个样本,每个样本有4个特征:花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)和花瓣宽度(petal width)。首先,我们需要加载iris数据集。

CyberLynxO的博客 1985

从零实现高精度手势检测:OpenCV+MediaPipe模型移植实战(2)(附c++完整代码)

上篇已经介绍了手掌检测的方法。本章将在手掌检测的基础上,完成手指关节的检测。

qq_37160641的博客 2670

Python科研绘图:1.散点图、箱线图、小提琴图、KDE图等

在数据分析与科研中,数据可视化是理解和传达复杂信息的关键工具。本文通过一个模拟的Iris数据集,介绍了使用Python进行科研绘图的多种方法。从基本的散点图、箱线图到高级的KDE图、平行坐标图等,本文展示了如何通过Python中的Matplotlib和Seaborn库实现这些可视化技术。通过这些方法,科研人员可以更直观地观察数据之间的关系,发现潜在的模式与趋势,提高数据分析的效率和准确性。

qq_53529450的博客 1104

Android-音频配置文件详解

前言:   Android P 引入了一种新的音频政策配置文件格式 (XML),用于描述音频拓扑。新的 XML 文件支持定义输出输入流配置文件、可用于播放和捕获的设备以及音频属性的数量和类型。但是每个项目的代码里面都有很多音频配置文件,具体使用的是哪个文件呢?本文将详细讲述。 1. 查看运行时具体使用的xml adb shell dumpsys media.audio_policy | grep -iE "Config source:" 结果如下: Config source: /vendor

cheriyou_的博客 3947

数据可视化核心四图:箱线图、直方图、散点图与联合分布图实战指南

数据可视化是数据分析的基石,它将抽象的数字转化为直观的图形,帮助我们从数据中快速获取洞察。其核心原理在于利用视觉编码,将数据的分布、关系和模式呈现出来,这对于探索性数据分析至关重要。在技术价值上,掌握基础图表能极大提升数据探索效率,是构建复杂数据看板和进行深入统计建模的前提。无论是业务分析、用户行为研究还是科学计算,都需要从理解数据的基本分布和变量间关系开始。本文聚焦于数据分析中最实用、最高频的四种基础可视化图表:箱线图、直方图、散点图和联合分布图。其中,箱线图是识别数据分布范围和异常值的利器,而联合分布图

weixin_33874713的博客 483

Origin绘制带差异显著性标记的分组均值条形图|科研论文图表教程(附数据格式模板)

传统柱状图虽能呈现组间均值差异,却隐藏个体数据分布;散点图虽能展示原始数据,却难以直观凸显统计显著性。带差异显著性(*)的分组均值条形图——它以“双层叙事”的创新设计,同时呈现群体特征与个体差异。

weixin_50236590的博客 1499

【Unity】Unity 跨平台及编译过程

早期的Unity跨平台是基于MONO运行时的,又通过CLS实现了跨语言。其基本思路是将各个版本的语言统一编译成CIL语言,在不同平台运行时使用CLR进行解释。有点类似于Java的jdk和jvm。 CLS(Common Language System)通用语言规范:CLS是一种规范,类似于schema,当文件被指定遵守CLS规范后,在某语言中写出不符合通用规范的代码后将被警告或报错。 MONO是一个开源工程,其中包含C#编译器,CLR运行时,以及一组类库。该工程常见了一系列符合ECMA标准的.NET工具,MO

一个普普通通的游戏开发者 7242

用数据可视化直观理解数据--iris数据集为例

原文:https://www.kaggle.com/benhamner/d/uciml/iris/python-data-visualizations See Kaggle Datasets for other datasets to try visualizing. The World Food Facts data is an especially rich one for visualiza

蓁蓁尔的博客 1万+

101、LLC谐振变换器的传递函数推导

文章摘要 LLC谐振变换器的传递函数推导是电源设计的关键环节。作者通过一次炸管事故案例,揭示了忽视传递函数计算的严重后果。LLC传递函数复杂的根源在于其三个谐振元件(Lr、Cr、Lm)的变频工作特性,导致增益曲线非单调变化。文章详细介绍了采用扩展描述函数法的建模思路,指出Lm对增益曲线的重要影响,并给出了传递函数的数学表达式及频率响应特性。通过实际调试案例,作者对比了错误补偿器设计(Type II)与优化方案(Type III)的效果差异,强调了实测验证的重要性。最后总结了5条实用经验,包括留足裕度、关注启

Jack010169的博客 154

python计算iris数据集的均值_Iris数据集实战

本次主要围绕Iris数据集进行一个简单的数据分析, 另外在数据的可视化部分进行了重点介绍.环境win8, python3.7, jupyter notebook目录正文1. 项目背景鸢尾属(拉丁学名:Iris L.), 单子叶植物纲, 鸢尾科多年生草本植物, 开的花大而美丽, 观赏价值很高. 鸢尾属约300种, Iris数据集中包含了其中的三种:山鸢尾(Setosa),杂色鸢尾(Versic...

weixin_39961522的博客 2323

cesium 深度图(获取区域最高最低点位)

文章摘要: Cesium深度图技术可用于获取区域地形高程数据,核心实现步骤包括:1)通过离屏相机构建独立渲染环境,使用正交投影确保采样精度;2)采用离屏渲染技术获取均匀分布的地形点数据。关键技术点包含多边形外包矩形计算、后台相机配置(5km高度正交投影)、1024×1024像素离屏视图设置,以及深度数据解析(RGBA格式转换和三维坐标还原)。该方法避免了主视图干扰,可精准获取区域内地形高程信息,为填挖方分析等应用提供基础数据支持。

God's asylum的博客 284

卫星轨道坐标转换:轨道六根数到经纬高(经STK验证)

a:半长轴(km)e:偏心率i:轨道倾角(度)Ω:升交点赤经(度)ω:近地点幅角(度)ν:真近点角(度)

weixin_52370774的博客 171

Iris数据集深度分析:用Python绘制高级统计图表(直方图/KDE/箱线图对比)

本文深入分析Iris数据集,通过Python绘制直方图、KDE图和箱线图等高级统计图表,揭示数据分布的多维度洞见。文章详细介绍了环境准备、数据加载及三种可视化工具的应用场景和参数对比,帮助读者掌握数据可视化的核心技巧,提升数据分析效率。

q6r7s8t9的博客 504

ROS机器人未知环境自主探索功能包explore_lite最全源码详细解析(二)

本系列文章主要针对ROS机器人常使用的未知环境自主探索功能包explore_lite展开全源码的详细解析,并进行概括总结。 本系列文章共包含六篇文章,前五篇文章主要介绍explore_lite功能包中 explore.cpp、costmap_tools.h、frontier_search.cpp、costmap_client.cpp等源码实现文件中全部函数的详细介绍,第六篇文章进行概括总结,包含自主探索功能包explore_lite的简介,实现未知环境自主探索功能的原理及流程总结,效果演示,使用功能包exp

慕羽★的博客 1648

Python数据分析项目实例2:使用seaborn分析鸢尾花(Iris)数据集

iris数据集下载(免费):https://download.youkuaiyun.com/download/weixin_44940488/20718531 使用的分析软件:jupyter notebook 主要语法知识:Python数据清洗与整理、seaborn数据可视化。 1. 导入数据 # 导入相关库 from pandas import Series,DataFrame import pandas as pd import numpy as np import matplotlib.pyplo.

简时刻的博客 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Iris数据集的 Fisher线性分类,并实现可视化

用Jupyter完成Iris数据集的 Fisher线性分类,并学习数据可视化技术 。 一、完成Iris数据集的 Fisher线性分类判断准确率 python代码如下所示: import pandas as pd import numpy as np import matplotlib.pyplot as plt path=r'media/Iris.csv' df = pd.read_csv(pa...

qq_42618010的博客 1084

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于Python的数据可视化:从一维到多维

目录 一、iris数据集介绍 二、一维数据可视化 三、二维数据可视化 四、多维数据可视化 五、参考资料 一、iris数据集介绍 iris数据集有150个观测值和5个变量,分别是sepal length、sepal width、petal length、petal width、species,其中species有3个取值:setosa、virginica、versicolor,反正就是鸾尾花的...

云中寻雾的博客 5065

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: Windows系统下EMQX开机自启全攻略:任务计划+服务化部署技巧
下一篇: 当3PAR存储遇上RHEL 7.3:一文搞懂多路径负载均衡的5个关键参数
code8
博客等级 码龄17年 65粉丝 1720原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值