Python数据分析与可视化(Python绘图详解)

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Java案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Python数据分析与可视化(Python绘图详解)

文章目录

    • 一、前言
    • 二、知识点详解
      • 1. Python 数据分析步骤
      • 2. Python创建可视化的基本步骤
    • 三、Python 绘图
      • 1. 绘制三维曲面图及其投影图
      • 2. 绘制曲面图
      • 3. 绘制曲面投影图
      • 4. 同时绘制曲面图和投影图,用两个图展示
      • 5. 绘制曲面图
      • 6. 同时绘制曲面图及其二维填色图

在这里插入图片描述

一、前言

  在数据科学领域,数据分析和可视化是至关重要的环节,能够帮助我们从数据中提取有用的信息和见解。Python作为一种功能强大且易于学习的编程语言,在数据分析和可视化方面拥有丰富的工具和库,如NumPy、Pandas、Matplotlib和Seaborn等。

  首先,让我们来看看如何使用Python进行数据分析。在数据分析过程中,通常需要加载数据、清洗数据、进行统计分析和建模等步骤。我们可以使用Pandas库加载和处理数据NumPy库用于数值计算,以及Scikit-learn库用于机器学习建模。通过这些工具,我们可以轻松地对数据进行探索和分析,从而更好地理解数据背后的规律和趋势。

  接下来,让我们转向数据可视化。数据可视化是将数据转换为图形化展示的过程,能够帮助我们直观地理解数据并发现数据之间的关系。在Python中,Matplotlib和Seaborn是两个常用的数据可视化库,可以绘制各种类型的图表,如折线图、柱状图、散点图、热力图等。通过这些图表,我们可以更直观地展示数据的特征和趋势,为数据分析提供更直观的支持。

  综上所述,Python作为一种强大的编程语言,在数据分析和可视化方面拥有丰富的工具和库,能够帮助我们更好地理解和分析数据。通过实际案例的学习和实践,我们可以更加熟练地运用Python进行数据分析和可视化,从而提升数据科学的能力和水平。

二、知识点详解

1. Python 数据分析步骤

  进行数据分析时,通常会使用Python中的一些流行库(如Pandas、NumPy、Matplotlib等)。以下是使用Python进行数据分析的基本步骤:

  • 导入数据:
    使用Pandas库中的read_csv()函数导入数据集,也可以从数据库、API等来源获取数据。
  • 数据探索:
    使用head()、info()、describe()等方法查看数据的前几行、基本信息和统计摘要。
    检查数据类型、缺失值、异常值等。
  • 数据清洗:
    处理缺失值:使用dropna()删除缺失值或fillna()填充缺失值。
    处理重复值:使用drop_duplicates()删除重复值。
    数据类型转换:将数据转换为适当的数据类型。
  • 数据可视化:
    使用Matplotlib、Seaborn等库绘制图表,如折线图、柱状图、散点图等,以便更直观地理解数据。
  • 特征工程:
    创建新特征:根据现有特征创建新的特征。
    特征编码:对分类变量进行独热编码或标签编码。
  • 数据建模:
    根据问题选择合适的模型,如线性回归、决策树、随机森林等。
    使用Scikit-learn库构建模型,包括拟合、预测和评估模型。
  • 模型评估:
    使用交叉验证、混淆矩阵、准确率、精确率、召回率等指标评估模型性能。
  • 模型优化:
    调参:使用网格搜索、随机搜索等方法调整模型超参数以提高性能。
    特征选择:根据特征重要性选择最相关的特征。
  • 结果解释:
    解释模型的预测结果,分析模型的优劣势,提出改进建议。

2. Python创建可视化的基本步骤

  创建可视化是数据分析中非常重要的一环,Python中有多个库可以用来创建各种类型的可视化,比如Matplotlib、Seaborn、Plotly等。以下是使用Python创建可视化的基本步骤:

  • 导入库:
    导入需要使用的可视化库,如Matplotlib、Seaborn等。
  • 准备数据:
    准备要可视化的数据,确保数据格式正确并包含所需的信息。
  • 选择图形类型:
    根据数据的特点和展示需求选择合适的图形类型,如折线图、柱状图、散点图等。
  • 创建图形:
    使用选定的库中的函数或方法创建图形对象,如plt.figure()创建Figure对象。
  • 绘制图形:
    使用相应的绘图函数绘制图形,如plt.plot()绘制折线图、plt.bar()绘制柱状图等。
  • 设置图形属性:
    设置图形的标题、坐标轴标签、图例、颜色等属性,以增强可视化效果。
  • 显示图形:
    使用plt.show()显示绘制的图形。
  • 保存图形:
    可选择将图形保存为图片文件,使用plt.savefig()保存图形。
  • 示例代码:
import matplotlib.pyplot as plt# 准备数据
x = [1, 2, 3, 4, 5]
y = [10, 15, 13, 18, 16]# 创建图形
plt.figure()# 绘制折线图
plt.plot(x, y, marker='o', color='b', linestyle='-', label='Line Plot')# 设置图形属性
plt.title('Example Line Plot')
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
plt.legend()# 显示图形
plt.show()

三、Python 绘图

1. 绘制三维曲面图及其投影图

  • 知识点:
    • 使用Matplotlib库中的plot_surface方法绘制三维曲面图
    • 使用contourf方法绘制曲面的投影图
  • 关键步骤:
    • 创建一个包含两个子图的Figure对象
    • 在第一个子图中使用plot_surface方法绘制三维曲面图
    • 在第二个子图中使用contourf方法绘制曲面的投影图
    • 设置子图的标题和显示图形
  • 详细代码
import matplotlib.pyplot as plt
import numpy as npfig = plt.figure()
ax = fig.add_subplot(121, projection='3d')
ax2 = fig.add_subplot(122)X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_title('3D Surface Plot')ax2.contourf(X, Y, Z, cmap='viridis')
ax2.set_title('Projection Plot')plt.show()

在这里插入图片描述

2. 绘制曲面图

  • 知识点:
    • 使用Matplotlib库中的plot_surface方法绘制三维曲面图
  • 关键步骤:
    • 创建一个Figure对象
    • 使用plot_surface方法绘制三维曲面图
    • 设置图形的标题和显示图形
  • 详细代码
import matplotlib.pyplot as plt
import numpy as npfig = plt.figure()
ax = fig.add_subplot(111, projection='3d')X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_title('Surface Plot')plt.show()

在这里插入图片描述

3. 绘制曲面投影图

  • 知识点:
    • 使用Matplotlib库中的contourf方法绘制曲面的投影图
  • 关键步骤:
    • 创建一个Figure对象
    • 使用contourf方法绘制曲面的投影图
    • 设置图形的标题和显示图形
  • 详细代码
import matplotlib.pyplot as plt
import numpy as npfig = plt.figure()
ax = fig.add_subplot(111)X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))ax.contourf(X, Y, Z, cmap='viridis')
ax.set_title('Projection Plot')plt.show()

在这里插入图片描述

4. 同时绘制曲面图和投影图,用两个图展示

  • 知识点:
    • 同时在一个Figure中创建多个子图展示不同图形
  • 关键步骤:
    • 创建一个包含两个子图的Figure对象
    • 在第一个子图中使用plot_surface方法绘制三维曲面图
    • 在第二个子图中使用contourf方法绘制曲面的投影图
    • 设置子图的标题和显示图形
  • 详细代码
import matplotlib.pyplot as plt
import numpy as npfig, axs = plt.subplots(1, 2, figsize=(12, 5))X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))axs[0].plot_surface(X, Y, Z, cmap='viridis')
axs[0].set_title('Surface Plot')axs[1].contourf(X, Y, Z, cmap='viridis')
axs[1].set_title('Projection Plot')plt.show()

在这里插入图片描述

5. 绘制曲面图

  • 知识点:
    • 使用Matplotlib库中的plot_surface方法绘制三维曲面图
  • 关键步骤:
    • 创建一个Figure对象
    • 使用plot_surface方法绘制三维曲面图
    • 设置图形的标题和显示图形
  • 详细代码
import matplotlib.pyplot as plt
import numpy as npfig = plt.figure()
ax = fig.add_subplot(111, projection='3d')X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))ax.plot_surface(X, Y, Z, cmap='viridis')
ax.set_title('Surface Plot')plt.show()

在这里插入图片描述

6. 同时绘制曲面图及其二维填色图

  • 知识点:
    • 同时在一个Figure中创建多个子图展示不同图形
  • 关键步骤:
    • 创建一个包含两个子图的Figure对象
    • 在第一个子图中使用plot_surface方法绘制三维曲面图
    • 在第二个子图中使用contourf方法绘制曲面的二维填色图
    • 设置子图的标题和显示图形
  • 详细代码
import matplotlib.pyplot as plt
import numpy as npfig, axs = plt.subplots(1, 2, figsize=(12, 5))X = np.linspace(-5, 5, 100)
Y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(X, Y)
Z = np.sin(np.sqrt(X**2 + Y**2))axs[0].plot_surface(X, Y, Z, cmap='viridis')
axs[0].set_title('Surface Plot')axs[1].contourf(X, Y, Z, cmap='viridis')
axs[1].set_title('2D Filled Contour Plot')plt.show()

在这里插入图片描述


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

轻量级流密码算法Trivium

轻量级流密码算法Trivium 0x0 Trivium算法简介 Trivium算法是由C.D Canniere和B.Preneel共同设计的一套对称加密算法,Trivium密码算法采用了分组密码和非线性反馈移位寄存器的设计思路。该密码算法总共288比特的内部状态,其中有…

数据篇| 关于Selenium反爬杂谈

友情提示:本章节只做相关技术讨论, 爬虫触犯法律责任与作者无关。 LLM虽然如火如荼进行着, 但是没有数据支撑, 都是纸上谈兵, 人工智能的三辆马车:算法-数据-算力,缺一不可。之前写过关于LLM微调文章《微调入门篇:大模型微调的理论学习》、《微调实操一: 增量预训练(Pretrai…

【手撕算法】快速排序(递归分治法)Python实现

一、算法 class Solution:def Partition(self, nums, low, high):pivotkey nums[low] # 元素copied, nums[low]空了出来while low < high:while low < high and nums[high] > pivotkey:high high - 1 # 直到找到一个nums[high]<pivotkey位置nums[low] nums[h…

Matlab simulink建模与仿真 第十七章(补充离散库和补充数学库)

参考视频&#xff1a;simulink1.1simulink简介_哔哩哔哩_bilibili 一、补充离散库和补充数学库中的模块概览 1、补充离散库 注&#xff1a;每个版本的补充离散库不一定相同&#xff0c;也不是每个版本的库都有如上所有模块。 2、补充数学库 二、离散直接传递函数Ⅱ模块 1、…

学生护眼台灯哪个品牌比较好?五款性价比高的学生护眼台灯

现在的孩子学习压力很大&#xff0c;在学校课程已经塞满了大半天&#xff0c;课后的作业更是不少&#xff0c;空闲时间还需要去课后补习班的数不胜数。用眼的次数非常的高&#xff0c;眼睛很容易感到疲惫&#xff0c;这时候我们一个宝贝大有作用&#xff0c;就是我们的护眼台灯…

软件测试 BUG 篇

目录 一、软件测试的生命周期 二、BUG 1. bug的概念 2. 描述bug的要素 3. bug的级别 4. bug的生命周期 5. 与开发产生争执怎么办&#xff1f;&#xff08;面试高频考题&#xff09; 5.1 先检查自身&#xff0c;是否bug描述不清楚 5.2 站在用户角度考虑并抛出问题 5.3 …

C++/Qt 集成 AutoHotkey

C/Qt 集成 AutoHotkey 前言AutoHotkey 介绍 方案一&#xff1a;子进程启动编写AutoHotkey脚本准备 AutoHotkey 运行环境编写 C/Qt 代码 方案二&#xff1a;显式动态链接方案探索编译动态链接库集成到C工程关于AutoHotkeyDll.dll中的函数原型 总结 前言 上一篇介绍了AutoHotkey…

YOLOv9改进,YOLOv9主干网络替换为RepViT (CVPR 2024,清华提出,独家首发),助力涨点

摘要 轻量级视觉变换器(ViTs)在资源受限的移动设备上表现出优越的性能和较低的延迟,相比之下轻量级卷积神经网络(CNNs)稍显逊色。研究人员发现了许多轻量级 ViTs 和轻量级 CNNs 之间的结构联系。然而,它们在块结构、宏观和微观设计上的显著架构差异尚未得到充分研究。在…

TC-RAG: 图灵完备的检索增强

1. 背景 大型语言模型在众多关键领域均已取得显著进展&#xff0c;并在各种下游任务中展现出卓越性能。 在医疗领域&#xff0c;这些模型尤显潜力&#xff0c;特别是在对责任感和可靠性要求极高的健康护理领域。这些模型通过全面的医学知识预训练&#xff0c;不仅能支持医生做…

堆的向下调整算法和TOPK问题

目录 1.什么是堆&#xff1f; 1.1 向下调整建堆的时间复杂度计算 1.2 堆的结构体设计 2.堆的功能实现&#xff1a; 2.1 堆的插入&#xff1a; 2.2 堆的删除&#xff1a; 2.3 堆排序&#xff1a; 2.4 向下调整建堆&#xff1a; 2.5 TOPK问题&#xff1a; 2.6 向上调整算…

周末愉快!——周复盘

加班的晚上有一个美梦&#xff01; 周末愉快简单复盘结尾 精华&#xff1a; 在这个信息爆炸的时代&#xff0c;我们的大脑每天都被无数的数据和刺激充斥&#xff0c;以至于我们常常感到应接不暇。然而&#xff0c;正如古人所言&#xff1a;“不飞则已&#xff0c;一飞冲天”&am…

音视频入门基础:AAC专题(4)——ADTS格式的AAC裸流实例分析

音视频入门基础&#xff1a;AAC专题系列文章&#xff1a; 音视频入门基础&#xff1a;AAC专题&#xff08;1&#xff09;——AAC官方文档下载 音视频入门基础&#xff1a;AAC专题&#xff08;2&#xff09;——使用FFmpeg命令生成AAC裸流文件 音视频入门基础&#xff1a;AAC…

Paragon NTFS for Mac和Tuxera NTFS for Mac,那么两种工具有什么区别呢?

我们在使用Mac系统读取U盘的过程中往往会遇到一个问题&#xff0c;那就是U盘插进电脑无法显示&#xff0c;或者只能读取不能编辑。出现这种情况的原因就一般是格式错误。 很多小伙伴在解决这种问题的时候会选择使用U盘读写工具&#xff0c;那么哪一种读写工具比较好呢&#xf…

毕业设计选题:基于springboot+vue+uniapp的驾校报名小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

算法——贡献法

前天的AtCoder Beginner Contest 371 D题碰到了这个贡献法&#xff0c;刚好之前的第十一届蓝桥杯省赛第二场真题AcWing 2868. 子串分值也是用的这个方法hh,但是赛时没有搞出来。。。 AcWing 2868. 子串分值 对于一个字符串 SS&#xff0c;我们定义 SS 的分值 f(S)f(S) 为 SS 中…

【计算机网络】网络层协议解析

网络层的两种服务IPv4分类编址划分子网无分类地址 IPv4地址应用IP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报 IPv4数据报首部格式ICMP网际控制报文协议虚拟专用网VPN与网络地址转换NAT 网络层主要任务是实现网络互连&#xff0c;进而实现数据包在各网络之间的传…

spring boot admin集成,springboot2.x集成监控

服务端&#xff1a; 1. 新建monitor服务 pom依赖 <!-- 注意这些只是pom的核心东西&#xff0c;不是完整的pom.xml内容&#xff0c;不能直接使用&#xff0c;仅供参考使用 --><packaging>jar</packaging><dependencies><dependency><groupId&g…

【STM32】独立看门狗(IWDG)原理详解及编程实践(下)

这篇文章详细讲解独立看门狗的编程实践代码。关于独立看门狗的原理及配置可以看上一篇文章。 【STM32】独立看门狗&#xff08;IWDG&#xff09;原理详解及编程实践&#xff08;上&#xff09;-CSDN博客 目录 1、 初始化 IWDG 2. 配置 IWDG 3. 喂狗 4. 处理看门狗复位 5、完…

心理辅导系统设计与Spring Boot技术

5 系统的实现 5.1学生功能模块的实现 学生进入本系统可查看系统信息&#xff0c;系统主界面展示如图5-1所示。 图5-1系统主界面图 5.1.1 学生登录界面 学生在登录时需输入正确的登录用户名和密码&#xff0c;系统会以登录用户名、密码为参数进行登录信息的验证&#xff0c;信…

人力资源数据集分析(二)_随机森林与逻辑回归

数据入口&#xff1a;人力资源分析数据集 - Heywhale.com 数据说明 字段说明EmpID唯一的员工IDAge年龄AgeGroup年龄组Attrition是否离职BusinessTravel出差&#xff1a;很少、频繁、不出差DailyRate日薪Department任职部门&#xff1a;研发部门、销售部门、人力资源部门Dista…