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

目录

  • **理解数据与数据可视化的基本流程**
  • **了解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轴标签不旋转。

结论:

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nnUnet 大模型学习笔记(续):训练网络(3d_fullres)以及数据集标签的处理

目录 1. 数据集处理 1.1 实现脚本 1.2 json文件 2. 设置读取路径 2.1 设置路径 2.2 数据集转换 2.3 数据集预处理 2.4 训练&#xff08;3d_fullres) 3. 训练结果展示 关于nnUnet 数据集的处理和环境搭建&#xff0c;参考上文&#xff1a;第四章&#xff1a;nnUnet大模…

94、Python之异常:自定义异常以满足业务个性化需求

引言 前面介绍了Python中内置的异常类的继承体系&#xff0c;通常来说&#xff0c;这些异常类已经能够满足各种异常的场景需要。但是&#xff0c;有时还是需要自定义异常&#xff0c;来满足一些个性化的需求&#xff0c;以及更加可控、精细化的异常管理。 本文就来介绍一下如…

使用InternVL、LMDeploy和GTE搭建多模态RAG系统

如何将视觉大模型&#xff08;VLM&#xff09;与 多模态RAG 结合起来&#xff0c;创建服装搜索和搭配推荐&#xff01;本文展示了InternVL模型在分析服装图像和提取颜色、款式和类型等关键特征方面的强大功能。 InternVL2是国内首个在MMMU(多学科问答)上突破60的模型&#xff0…

MT-Pref数据集:包含18种语言的18k实例,涵盖多个领域。实验表明它能有效提升Tower模型在WMT23和FLORES基准测试中的翻译质量。

2024-10-10&#xff0c;由电信研究所、里斯本大学等联合创建MT-Pref数据集&#xff0c;它包含18种语言方向的18k实例&#xff0c;覆盖了2022年后的多个领域文本。通过在WMT23和FLORES基准测试上的实验&#xff0c;我们展示了使用MT-Pref数据集对Tower模型进行对齐可以显著提高翻…

【云从】十、常见安全问题与云计算的计费模式

文章目录 1、常见安全问题1.1 DDoS攻击1.2 病毒攻击1.3 木马攻击1.4 代码自身漏洞 2、安全体系3、云计算的计费模式4、常见云产品的计费方案5、云产品计费案例 1、常见安全问题 1.1 DDoS攻击 通过分布在各地的大量终端&#xff0c;同时向目标发送恶意报包&#xff0c;以占满目…

【C++贪心】1536. 排布二进制网格的最少交换次数|1880

本文涉及知识点 C贪心 决策包容性 LeetCode1536. 排布二进制网格的最少交换次数 给你一个 n x n 的二进制网格 grid&#xff0c;每一次操作中&#xff0c;你可以选择网格的 相邻两行 进行交换。 一个符合要求的网格需要满足主对角线以上的格子全部都是 0 。 请你返回使网格满…

精通CSS布局:探索经典的网页布局样式和技术

一、经典两列布局样式 1.概念 许多网站有一些特点&#xff0c;如页面顶部放置一个大的导航或广告条&#xff0c;右侧是链接或图片&#xff0c;左侧放置主要内容&#xff0c;页面底部放置版权信息等。 一般情况下&#xff0c;页面布局的两列都有固定宽度&#xff0c;而且从内容…

7.hyperf安装【Docker】

- 前言&#xff1a;为了与容器中的mysql通信&#xff0c;先运行mysql&#xff0c;再使用 --link关联 一、 拉取 php版本为8.2的版本 8.3的版本&#xff0c;启动框架时&#xff0c;报错。 docker pull hyperf/hyperf:8.2-alpine-vedge-swoole-slim二、 运行hyperf环境容器 --l…

分布式理论基础

文章目录 1、理论基础2、CAP定理1_一致性2_可用性3_分区容错性4_总结 3、BASE理论1_Basically Available&#xff08;基本可用&#xff09;2_Soft State&#xff08;软状态&#xff09;3_Eventually Consistent&#xff08;最终一致性&#xff09;4_总结 1、理论基础 在计算机…

解决k8s集群中安装ks3.4.1开启日志失败问题

问题 安装kubesphere v3.4.1时&#xff0c;开启了日志功能&#xff0c;部署时有三个pod报错了 Failed to pull image “busybox:latest”: rpc error: code Unknown desc failed to pull and unpack image “docker.io/library/busybox:latest”: failed to copy: httpRead…

Java项目-基于springboot框架的学习选课系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

【Petri网导论学习笔记】Petri网导论入门学习(八) —— 1.6 系统的Petri网模型

导航 1.6 系统的Petri网模型例 1.6 化学反应例 1.7 进程的通信协议例 1.8 P/V操作例 1.9 临界段互斥问题例 1.10 生产者/消费者问题例 1.11 哲学家就餐问题 1.6 系统的Petri网模型 理论的目的在于应用&#xff0c;接下来是一些关于用Petri网标识离散事件系统的例子 这里就直接…

C++ 游戏开发:从基础到进阶

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

【鸡翅Club】项目启动

一、项目背景 这是一个 C端的社区项目&#xff0c;有博客、交流&#xff0c;面试学习&#xff0c;练题等模块。 项目的背景主要是我们想要通过面试题的分类&#xff0c;难度&#xff0c;打标&#xff0c;来评估员工的技术能力。同时在我们公司招聘季的时候&#xff0c;极大的…

平衡相图在矿物加工中的广泛应用,含材料设计、性能预测等

平衡相图是描述在特定温度和压力下&#xff0c;不同相&#xff08;如固体、液体、气体等&#xff09;之间平衡关系的图表。在矿物加工领域&#xff0c;通过分析相图可以详细了解不同成分的矿物在特定温度和压力条件下的相变行为&#xff0c;从而设计出更高效的提取和分离方法&a…

EasyExcel自定义下拉注解的三种实现方式

文章目录 一、简介二、关键组件1、ExcelSelected注解2、ExcelDynamicSelect接口&#xff08;仅用于方式二&#xff09;3、ExcelSelectedResolve类4、SelectedSheetWriteHandler类 三、实际应用总结 一、简介 在使用EasyExcel设置下拉数据时&#xff0c;每次都要创建一个SheetWr…

文件误删并清空回收站:全面解析与高效恢复策略

一、文件误删并清空回收站的遭遇 在日常使用电脑或移动设备的过程中&#xff0c;我们难免会遇到一些令人懊恼的数据丢失问题&#xff0c;其中文件误删并清空回收站便是最为常见的一种。当你不小心删除了某个重要文件&#xff0c;并且随后又毫不留情地清空了回收站&#xff0c;…

flutter camera 插件相机不占满屏幕的问题

当 CameraPreview 超出屏幕范围时&#xff0c;可以通过以下几种方法来处理超出部分被裁剪的问题&#xff1a; 使用 FittedBox&#xff1a;FittedBox 可以自动调整子组件的大小和比例&#xff0c;使其适应父容器。使用 BoxFit 属性&#xff1a;在 FittedBox 中使用不同的 BoxFi…

Rust初踩坑

一、下载 到官网https://www.rust-lang.org/zh-CN/tools/install下载你需要的版本 二、安装 执行rustup-init 文件&#xff0c;选择1 按提示直到安装完成 可以通过以下命令测试&#xff1a; rustc -V # 注意的大写的 V cargo -V # 注意的大写的 V三、在VScode中…

python + mitmproxy 爬手机app (1)

起因&#xff0c; 目的: 想爬手机上某鱼。 mitmproxy 简介: 一句话: mitmproxy 就是中间人攻击. (只不过&#xff0c; 你安装&#xff0c;就代表你愿意承担风险。)源码&#xff1a;https://github.com/mitmproxy/mitmproxy文档: https://mitmproxy.org/ 安装过程: 见聊天记…