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

news2024/11/13 18:10:06

在这里插入图片描述

✅作者简介: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 np

fig = 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 np

fig = 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 np

fig = 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 np

fig, 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 np

fig = 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 np

fig, 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.coloradmin.cn/o/2153144.html

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

相关文章

【更新】上市公司绿色专利申请及授权数据(2000-2023年)

一、数据介绍 数据名称:上市公司-绿色专利申请、授权数据 数据范围:A股上市公司 数据年份:2000-2023年 数据样本:61243条 数据来源:国家知识产权局 二、数据指标 年份股票代码股票简称行业名称行业代码省份城市区…

SQL - 基础语法

SQL作为一种操作命令集, 以其丰富的功能受到业内人士的广泛欢迎, 成为提升数据库操作效率的保障。SQL Server数据库的应用,能够有效提升数据请求与返回的速度,有效应对复杂任务的处理,是提升工作效率的关键。 由于SQL Servers数据库管理系统…

★pwn 更改pwn题libc保姆级教程★

★pwn 更改pwn题libc保姆级教程★ 🍚前言🥟安装🥟glibc-all-in-one下载与调整libc🥟patchelf更改libc🥟clibc的使用与分析 🍚前言 现在市面上有很多关于改libc的教程,但是基本有以下几个问题&a…

IDEA中实现springboot热部署

IDEA中实现springboot热部署 热部署: 每一次修改代码后会自动更新&#xff0c;无需每次重启 依赖(pom.xml) 修改后记得Reload一下 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><…

微信小程序IOS真机调试-onPullDownRefresh和onReachBottom不生效

切换真机调试2.0版本 勾选JS编译成ES5 如果使用了 uniapp&#xff0c;这里也需要勾选 重新启动

系统架构笔记-3-信息系统基础知识

知识要点 结构化方法&#xff1a;结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化方法也称为生命周期法&#xff0c;是一种传统的信息系统开发方法&#xff0c;由结构化分析、结构化设计、结构化程序设计三部分有机组合而成&#xff0c;精髓是自顶向下、逐…

Java笔试面试题AI答之设计模式(2)

文章目录 6. 什么是单例模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;解决的问题应用的环境实现方式 7. 什么是工厂模式&#xff0c;以及他解决的问题&#xff0c;应用的环境 &#xff1f;工厂模式简述工厂模式解决的问题工厂模式的应用环境工厂模式的…

高算力芯片的发展

最近参与了2024年北京AI芯片峰会&#xff0c;虽然是讲AI芯片&#xff0c;但因为目前算力主要讲的是智能算力&#xff0c;所以&#xff0c;针对高算力芯片的发展趋势有重点的讲解。之前没有很系统关注这块&#xff0c;这次算是做了全面了解。下面&#xff0c;借用峰会的一些内容…

九章云极DataCanvas公司荣获2024年服贸会“科技创新服务示范案例”

9月15日&#xff0c;2024年中国国际服务贸易交易会&#xff08;服贸会&#xff09;示范案例交流会暨颁奖典礼在北京国家会议中心举行&#xff0c;九章云极DataCanvas 公司自研的DataCanvas Alaya NeW智算操作系统凭借卓越的AI创新实力、前瞻性的市场布局以及突破性的技术革新成…

uniapp中使用echarts 完整步骤,包括报错以及解决方案

在我们日常可能会有小程序中要使用echarts&#xff0c;我今天总结了一下整个引入的步骤 首先echarts - DCloud 插件市场在插件市场里面导入进项目&#xff0c;我这边用的是vue3的以及主要开发小程序&#xff0c;就直接放我的案例了 按照上面的步骤&#xff0c;在样式部分这样…

javaseday28 IO

IO流 IO流;存储和读取数据的解决方案。 纯文本文件&#xff1a;Windows自带的记事本打开能读懂的文件&#xff0c;word和Excel不是纯文本文件&#xff0c;txt和md是纯文本文件。 小结 IO流体系 FileOutputStream public class Demo1 {public static void main(String[] args)…

【学习笔记】 使用AD24完成相同电路的自动布线布局(相同模块布局布线ROOM布线快速克隆)

【学习笔记】 使用AD24完成相同电路的自动布线布局 一、适用基本条件二、基于ROOM的自动布局/布线的方法三、可能出现的报错四、ROOM自动布局的一些优点和缺点 当面对多个相同电路模块时&#xff0c;使用 ROOM 可以一次性对一个模块进行精心布局&#xff0c;然后将该布局快速复…

2024 研究生数学建模竞赛(C题)建模秘籍|数据驱动下磁性元件的磁芯损耗建模|文章代码思路大全

铛铛&#xff01;小秘籍来咯&#xff01; 小秘籍团队独辟蹊径&#xff0c;运用数据拟合&#xff0c;方差分析&#xff08;ANOVA&#xff09;&#xff0c;特征提取&#xff0c;多目标优化等强大工具&#xff0c;构建了这一题的详细解答哦&#xff01; 为大家量身打造创新解决方案…

vs2022快捷键异常不起作用解决办法

安装了新版本的vs2022&#xff0c;安装成功后&#xff0c;发现快捷键发生异常&#xff0c;之前常用的快捷键要么发生改变&#xff0c;要么无法使用&#xff0c;比如原来注释代码的快捷键是ctrlec&#xff0c;最新安装版本变成了ctrlkc&#xff0c;以前编译代码的快捷键是F6或者…

go webapi上传文件 部属到linux

go厉害的地方&#xff0c;linux服务器上无需安装任务依赖就可以运行&#xff0c;大赞&#xff01; 一、编译 #在Goland中cmd中执行 go env -w GOARCHamd64 go env -w GOOSlinux go build main.go # 切换回来 否则无法运行 go env -w GOOSwindows go run main.go 拷贝到linux服…

ubuntu如何进行自动mount硬盘(简易法)

1. 找到你ubuntu的disk工具 2. 选中你要mount的盘 3. 点击那个设置按钮 4. 选择edit mount options 5. disable user session defaults 6, 填写Mount Point就可以了&#xff0c; 最后输入一次密码&#xff0c;重启设备就搞定了

DOG:知识图谱大模型问答的迭代交互式推理,克服长路径和假阳性关系挑战

DOG&#xff1a;知识图谱大模型问答的迭代交互式推理&#xff0c;克服长路径和假阳性关系挑战 秒懂大纲提出背景解法拆解全流程优化和医学关系 创意 秒懂大纲 ├── DoG框架【主题】 │ ├── 背景【研究背景】 │ │ ├── LLMs的局限性【问题描述】 │ │ │ …

pgvector docker版安装;稀疏向量使用;psycopg2 python连接使用

参看: https://cloud.tencent.com/developer/article/2359831 https://hub.docker.com/r/pgvector/pgvector/tags https://github.com/pgvector/pgvector 一、安装 拉取0.7版本 docker pull pgvector/pgvector:0.7.4-pg16运行: docker run --name pgvector -v $(pwd)/dat…

OpenLayers 开源的Web GIS引擎 - 地图初始化

在线引用&#xff1a; 地址&#xff1a;OpenLayers - Get the Code 离线引用&#xff1a; 下载地址&#xff1a;Releases openlayers/openlayers GitHub v10.0.0版本 地图初始化代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><…

Spring Boot 入门:解锁 Spring 全家桶

前言 Spring 全家桶是现代 Java 开发者不可或缺的工具集&#xff0c;它提供了从轻量级的框架到微服务架构的完整支持。本文将带你快速了解 Spring 框架、核心概念如 IoC&#xff08;控制反转&#xff09;和 AOP&#xff08;面向切面编程&#xff09;&#xff0c;并深入介绍 Sp…