从零开始:Python与Jupyter Notebook中的数据可视化之旅

news2024/10/26 12:38:27

目录

  • **理解数据与数据可视化的基本流程**
  • **了解Python与其他可视化工具**
    • **掌握Anaconda、Jupyter Notebook的常用操作方法**
    • **原理**
  • 环境配置
    • 1. **安装Anaconda软件,创建实验环境**
        • 2. **安装Jupyter Notebook**
        • 3. **创建第一个Jupyter Notebook文本**
          • (1)**更改保存路径、重命名文件**
          • (2)**创建代码单元和Markdown单元**
    • 实验1-1:鸢尾花数据集可视化练习
      • 1. **安装scikit-learn库**
        • 2. **导入鸢尾花数据集并绘制表格**
          • 代码步骤:
      • 绘制特征之间的散点图
      • 绘制饼图
      • 绘制散点图
      • 条形图:展示每种鸢尾花品种的平均特征值,例如平均花萼长度。
  • 通过鸢尾花的目标(种类)创建类别列
  • 计算每个品种的平均特征值
  • 绘制条形图 - 展示不同品种的平均花萼长度
    • 代码解析:
      • 散点图:
      • 条形图:
  • 结论:

理解数据与数据可视化的基本流程

数据可视化的核心不仅是将数据映射为图形,而是一个贯穿整个数据流向的完整过程。这个过程可以分为以下几个关键步骤:

  • 数据采集:首先需要收集原始数据,可能来自数据库、API、手动输入或其它形式的文件(如CSV、Excel等)。
  • 数据处理和变换:对数据进行清洗、转换、聚合等处理,以便获得可用的数据结构和格式。
  • 可视化映射:将数据映射为图形符号,如点、线、颜色等,展示数据的结构和关系。
  • 人机交互:通过交互式图形实现动态数据探索,用户可以通过缩放、选择、过滤等操作更深入理解数据。
  • 用户感知:最终目标是通过图形呈现帮助用户理解数据的模式、趋势和重要信息。

了解Python与其他可视化工具

在数据可视化领域,Python拥有多个强大的库,可以生成各种类型的图形。常用的库包括:

  • Matplotlib:最基础的可视化库,支持创建各种静态、动态、交互式图形。
  • Seaborn:基于Matplotlib,提供了更高级和美观的统计图形工具,简化了数据的可视化操作。
  • Pandas:主要是用于数据操作和分析的库,但其内置的可视化功能也非常强大,适合快速生成常见图表。
  • Pyecharts:一个基于Python的库,支持创建交互式图形,适合需要精美和复杂展示的场景。

掌握Anaconda、Jupyter Notebook的常用操作方法

  • Anaconda:是一个集成数据科学工具的平台,常用于安装和管理Python及其相关库。
    • 创建虚拟环境:使用conda create -n myenv python=3.x来创建环境。
    • 安装库:在环境中运行conda install <package>pip install <package>
  • Jupyter Notebook:是一个交互式编程环境,支持实时代码执行、数据可视化和文档撰写。
    • 在终端输入jupyter notebook启动应用,打开浏览器进行操作。
    • 通过Markdown格式添加文本注释、公式,方便记录实验过程。

原理

数据可视化的流程可以分为四个主要部分:

  1. 数据采集:收集、导入数据源,通常以CSV、数据库等形式存在。
  2. 数据处理和变换:利用Pandas等工具对数据进行整理。
  3. 可视化映射:借助Matplotlib、Seaborn等库创建图形展示。
  4. 交互和感知:通过交互功能(如Pyecharts)与用户进行数据分析交互,增强对数据的理解。

这种整体的流程不仅提升了可视化的质量,也为用户提供了高效的分析工具。

环境配置

1. 安装Anaconda软件,创建实验环境

  • 下载并安装 Anaconda。

  • 打开Anaconda Prompt,创建新的实验环境并指定Python版本:

    conda create -n myenv python=3.x
    

    (例如,python=3.8可以选择合适版本)

  • 激活环境:

    conda activate myenv
    
2. 安装Jupyter Notebook
  • 安装Jupyter Notebook:

    conda install jupyter
    
  • 启动Jupyter Notebook:

    jupyter notebook
    
3. 创建第一个Jupyter Notebook文本
  • 在Jupyter Notebook界面中,点击New -> Python 3,创建一个新的Notebook文件。
(1)更改保存路径、重命名文件
  • 创建文件后,可以点击顶部文件名(默认是Untitled),然后重命名为Iris Visualization或其他合适的名字。
(2)创建代码单元和Markdown单元
  • 点击+按钮可以添加新的单元。
  • Cell类型的下拉框中,可以选择Code(代码单元)或Markdown(文本单元)。
  • 代码单元用来输入Python代码,Markdown单元则可以用来写实验步骤、注释、公式等。

实验1-1:鸢尾花数据集可视化练习

打开软件,可能需要等一会在这里插入图片描述
点击file——》Python 3
在这里插入图片描述
在这里插入图片描述
点击红框,重命名bushuo1-1.
在这里插入图片描述

1. 安装scikit-learn库

在这里插入图片描述

  • 在Anaconda Prompt中运行以下命令安装scikit-learn库:
    conda install scikit-learn
    
    在这里插入图片描述
2. 导入鸢尾花数据集并绘制表格
代码步骤:
# 导入必要的库
from sklearn import datasets
import pandas as pd
import matplotlib.pyplot as plt

# 设置字体以支持中文显示
plt.rcParams['font.family'] = 'Arial Unicode MS'

# 加载鸢尾花数据集
iris = datasets.load_iris()

# 创建DataFrame并设置列名
df = pd.DataFrame(iris.data, columns=['SL', 'SW', 'PL', 'PW'])

# 修改列名为中文
df.columns = ['长度', '宽度', '长度2', '宽度2']

# 显示前几行数据
print(df.head())

在这里插入图片描述

绘制特征之间的散点图

plt.figure(figsize=(10, 6))
plt.scatter(df['长度'], df['宽度'], c=iris.target, cmap='viridis')
plt.xlabel('花萼长度 (cm)')
plt.ylabel('花萼宽度 (cm)')
plt.title('鸢尾花花萼长度与宽度的散点图')
plt.colorbar(label='种类')
plt.show()

绘制饼图

在这里插入图片描述

plt.rcParams['font.family'] = 'Arial Unicode MS'
df['类别'] = iris.target
df_sum=pd.DataFrame(df.groupby('类别').size(),columns=['数量'])
df_sum.plot.pie(y='数量')

绘制散点图

# 导入必要的库
from sklearn import datasets
import pandas as pd
import matplotlib.pyplot as plt

# 设置字体以支持中文显示
plt.rcParams['font.family'] = 'Arial Unicode MS'

# 加载鸢尾花数据集
iris = datasets.load_iris()

# 创建DataFrame并设置列名
df = pd.DataFrame(iris.data, columns=['SL', 'SW', 'PL', 'PW'])
df.columns = ['花萼长度', '花萼宽度', '花瓣长度', '花瓣宽度']

# 绘制散点图 - 展示花萼长度与宽度的关系
plt.figure(figsize=(10, 6))
plt.scatter(df['花萼长度'], df['花萼宽度'], c=iris.target, cmap='viridis')
plt.xlabel('花萼长度 (cm)')
plt.ylabel('花萼宽度 (cm)')
plt.title('鸢尾花花萼长度与宽度的散点图')
plt.colorbar(label='种类')
plt.show()

条形图:展示每种鸢尾花品种的平均特征值,例如平均花萼长度。

通过鸢尾花的目标(种类)创建类别列

df[‘种类’] = pd.Categorical.from_codes(iris.target, iris.target_names)

计算每个品种的平均特征值

mean_values = df.groupby(‘种类’).mean()

绘制条形图 - 展示不同品种的平均花萼长度

plt.figure(figsize=(10, 6))
mean_values['花萼长度'].plot(kind='bar', color=['#4CAF50', '#FF9800', '#2196F3'])
plt.title('不同鸢尾花品种的平均花萼长度')
plt.xlabel('鸢尾花品种')
plt.ylabel('平均花萼长度 (cm)')
plt.xticks(rotation=0)
plt.show()

在这里插入图片描述

代码解析:

散点图:

使用 plt.scatter() 绘制花萼长度与花萼宽度的关系,并根据鸢尾花品种(iris.target)进行颜色映射。
cmap=‘viridis’ 用来指定颜色图,plt.colorbar() 添加颜色图例,显示各个颜色对应的品种。

条形图:

使用 groupby(‘种类’) 将鸢尾花数据按种类分类,并计算每种花的平均特征值。
mean_values[‘花萼长度’].plot(kind=‘bar’) 用于绘制条形图,显示不同品种鸢尾花的平均花萼长度。
color 参数指定了不同品种的颜色,xticks(rotation=0) 保持x轴标签不旋转。

结论:

散点图提供了特征之间的相关性和品种的分布信息,有助于发现不同品种的分布模式。
条形图则突出展示了不同品种鸢尾花的平均特征值,直观对比它们在某个维度(如花萼长度)上的差异。
这两个可视化方法相结合,有助于从多个角度深入理解鸢尾花数据集中的特征关系和品种差异。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2223968.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

双指针法应用超级大总结

前言 前面很多题目都有采用双指针的思想解题&#xff0c;有的是最基本的双指针、有的用快慢指针、有的是滑动窗口&#xff0c;有的是降低时间复杂度&#xff0c;有的是必须采用这种思想&#xff0c;整的人头都大了&#x1f62d;&#x1f62d;&#x1f62d;。现在系统整理总结一…

Spring Boot技术中小企业设备管理系统设计与实践

6系统测试 6.1概念和意义 测试的定义&#xff1a;程序测试是为了发现错误而执行程序的过程。测试(Testing)的任务与目的可以描述为&#xff1a; 目的&#xff1a;发现程序的错误&#xff1b; 任务&#xff1a;通过在计算机上执行程序&#xff0c;暴露程序中潜在的错误。 另一个…

Could not retrieve mirrorlist http://mirrorlist.centos.org错误解决方法

文章目录 背景解决方法 背景 今天在一台新服务器上安装nginx&#xff0c;在这个过程中需要安装相关依赖&#xff0c;在使用yum install命令时&#xff0c;发生了以下报错内容&#xff1a; Could not retrieve mirrorlist http://mirrorlist.centos.org/?release7&archx8…

SpringMVC实战:构建高效表述层框架

文章目录 1. SpringMVC简介和体验1.1 介绍1.2 主要作用1.3 核心组件和调用流程1.4 快速体验 2. SpringMVC接收数据2.1 访问路径设置2.2 接收参数2.2.1 param和json参数比较2.2.2 param参数接收2.2.3 路径参数接收2.2.4 json参数接收 2.3 接收cookie数据2.4 接收请求头数据2.5 原…

10340 文本编辑器(vim)

经验值&#xff1a;1600 时间限制&#xff1a;1000毫秒 内存限制&#xff1a;512MB 经开区2023年信息学竞赛试题 不许抄袭&#xff0c;一旦发现&#xff0c;直接清空经验&#xff01; 题目描述 Description 李明正在学习使用文本编辑器软件 Vim。与 Word、VSCode 等常用的…

用扣子模板,走AI捷径,这个双11,大模型要发威了?

AI离我们越来越近&#xff0c;还是越来越远&#xff1f; 一年前&#xff0c;ChatGPT刚出现那会儿&#xff0c;AI极其火热&#xff0c;很多国内企业奋不顾身的杀进去&#xff0c;或自研或投资或结盟&#xff0c;那时&#xff0c;感觉AI已经离我们很近了&#xff0c;一场商业革命…

单链表OJ题:移除链表元素(力扣)

目录 解法一&#xff1a;带头节点的新链表 解法二&#xff1a;不带头节点的新指向关系链表 总结 这是一道简单的力扣题目&#xff0c;关于解法的话&#xff0c;这里提供了二种思路&#xff0c;重点解释前两种&#xff0c;还有一种思路好想&#xff0c;但是时间复杂度为O(n^2…

使用Prometheus对微服务性能自定义指标监控

背景 随着云计算和容器化技术的不断发展&#xff0c;微服务架构逐渐成为现代软件开发的主流趋势。微服务架构将大型应用程序拆分成多个小型、独立的服务&#xff0c;每个服务都可以独立开发、部署和扩展。这种架构模式提高了系统的可伸缩性、灵活性和可靠性&#xff0c;但同时…

Java.9--集合

一、Collection接口 -->单列集合&#xff08;共享给大家&#xff09; .add();把给定的对象添加到当前集合中 clear();清空集合中所有的元素 remove();把给定的对象在当前集合中删除 contains();判断当前集合中是否包含给定的对象 isEmpty();判断当前集合是否为空 siz…

SQL注入之sqlilabs靶场21-30题

重点插入&#xff1a;html表 第二十一题 分析过程&#xff1a;&#xff08;没有正确的账号密码是否能拿到Cookie&#xff1f;最后注释好像只能使用#&#xff0c;--好像无法注释&#xff09; 查看源码 这里输入账号密码处被过滤了 但Cookie被base64编码了 可以从Cookie入手 …

智联招聘×Milvus:向量召回技术提升招聘匹配效率

01. 业务背景 在智联招聘平台&#xff0c;求职者和招聘者之间的高效匹配至关重要。招聘者可以发布职位寻找合适的人才&#xff0c;求职者则通过上传简历寻找合适的工作。在这种复杂的场景中&#xff0c;我们的核心目标是为双方提供精准的匹配结果。在搜索推荐场景下&#xff0c…

Ollama+Open WebUI,windows部署一个本地AI

在Ollama官网下载&#xff0c;点击DownLoad 下载完之后进行安装&#xff0c;配置环境变量&#xff0c;完成后打开CMD命令行工具测试 运行并下载模型 之后选择Open WebUI作为图形化界面 &#x1f680; Getting Started | Open WebUI 运行Docker命令 docker run -d -p 3000:80…

【Sublime Text】设置中文 最新最详细

在编程的艺术世界里&#xff0c;代码和灵感需要寻找到最佳的交融点&#xff0c;才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里&#xff0c;我们将共同追寻这种完美结合&#xff0c;为未来的世界留下属于我们的独特印记。 【Sublime Text】设置中文 最新最详细 开…

万字图文实战:从0到1构建 UniApp + Vue3 + TypeScript 移动端跨平台开源脚手架

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f343; vue-uniapp-template &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f…

团结引擎内置 AI 助手团结 Muse Chat 测试版上线!新功能怎么用?能做什么?

在开发过程中&#xff0c;快速获得精准的技术支持能够有效提高开发效率。生成式 AI 的出现为实现实时技术支持提供了新的机会。Unity 中国积极探索 AI 在开发中的应用&#xff0c;并在团结引擎 1.3.0 版本中上线了新功能&#xff1a;团结 Muse Chat。 团结 Muse Chat 是 Unity…

【linux】服务器Ubuntu20.04安装cuda11.8教程

【linux】服务器Ubuntu20.04安装cuda11.8教程 文章目录 【linux】服务器Ubuntu20.04安装cuda11.8教程到官网找到对应版本下载链接终端操作cudnn安装到官网下载下载后解压进入解压后的目录&#xff1a;将头文件复制到 /usr/local/cuda/include/ 目录&#xff1a;将库文件复制到 …

Matlab学习02-matlab中的数据显示格式及符号变量

目录 一&#xff0c;关系运算和逻辑运算 二&#xff0c;变量 三&#xff0c;数据显示格式 四&#xff0c;符号运算 1&#xff0c;创建符号变量 2&#xff0c;数值矩阵转换成符号矩阵 一&#xff0c;关系运算和逻辑运算 在matlab中&#xff0c;只要数值不是 &#xff0…

Lucas带你手撕机器学习——岭回归

岭回归&#xff08;Ridge Regression&#xff09; 一、背景与引入 在进行线性回归分析时&#xff0c;我们常常面临多重共线性的问题。多重共线性指的是自变量之间高度相关&#xff0c;这会导致回归系数的不稳定性&#xff0c;使得模型的预测能力降低。传统的线性回归通过最小…

【R + Python】iNaturalist 网站图片下载 inat api

文章目录 一、iNaturalist 简介二、R语言API&#xff1a;rinat三、示例3.1 获取观测数据3.2 绘制可视化图像函数用法 3.4 在区域网格中搜索3.5 下载图片3.51 提取图片 url3.52 下载图片: R语言3.53 下载图片: python 四、获取详细rinat包的文档 一、iNaturalist 简介 &#x1…

微服务网关Zuul

一、Zuul简介 Zuul是Netflix开源的微服务网关&#xff0c;包含对请求的路由和过滤两个主要功能。 1&#xff09;路由功能&#xff1a;负责将外部请求转发到具体的微服务实例上&#xff0c;是实现外部访问统一入口的基础。 2&#xff09;过滤功能&#xff1a;负责对请求的过程…