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

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。

🍎个人主页:Java Fans的博客

🍊个人信条:不迁怒,不贰过。小知识,大智慧。

💞当前专栏:Java案例分享专栏

✨特色专栏:国学周更-心性养成之路

🥭本文内容:Python数据分析与可视化(Python绘图详解)

文章目录

    • 一、前言
    • 二、知识点详解
      • [1. Python 数据分析步骤](#1. Python 数据分析步骤)
      • [2. Python创建可视化的基本步骤](#2. Python创建可视化的基本步骤)
    • [三、Python 绘图](#三、Python 绘图)
      • [1. 绘制三维曲面图及其投影图](#1. 绘制三维曲面图及其投影图)
      • [2. 绘制曲面图](#2. 绘制曲面图)
      • [3. 绘制曲面投影图](#3. 绘制曲面投影图)
      • [4. 同时绘制曲面图和投影图,用两个图展示](#4. 同时绘制曲面图和投影图,用两个图展示)
      • [5. 绘制曲面图](#5. 绘制曲面图)
      • [6. 同时绘制曲面图及其二维填色图](#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()保存图形。
  • 示例代码:
python 复制代码
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方法绘制曲面的投影图
    • 设置子图的标题和显示图形
  • 详细代码
python 复制代码
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方法绘制三维曲面图
    • 设置图形的标题和显示图形
  • 详细代码
python 复制代码
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方法绘制曲面的投影图
    • 设置图形的标题和显示图形
  • 详细代码
python 复制代码
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方法绘制曲面的投影图
    • 设置子图的标题和显示图形
  • 详细代码
python 复制代码
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方法绘制三维曲面图
    • 设置图形的标题和显示图形
  • 详细代码
python 复制代码
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方法绘制曲面的二维填色图
    • 设置子图的标题和显示图形
  • 详细代码
python 复制代码
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知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目《国学周更---心性养成之路》,学习技术的同时,我们也注重了心性的养成。

相关推荐
PieroPc6 分钟前
Python 自动化 打开网站 填表登陆 例子
运维·python·自动化
VinciYan42 分钟前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发
测试老哥1 小时前
外包干了两年,技术退步明显。。。。
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
終不似少年遊*1 小时前
美国加州房价数据分析01
人工智能·python·机器学习·数据挖掘·数据分析·回归算法
如若1232 小时前
对文件内的文件名生成目录,方便查阅
java·前端·python
西猫雷婶2 小时前
python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶
开发语言·python·opencv
老刘莱国瑞3 小时前
STM32 与 AS608 指纹模块的调试与应用
python·物联网·阿里云
一只敲代码的猪3 小时前
Llama 3 模型系列解析(一)
大数据·python·llama
Hello_WOAIAI4 小时前
批量将 Word 文件转换为 HTML:Python 实现指南
python·html·word
winfredzhang4 小时前
使用Python开发PPT图片提取与九宫格合并工具
python·powerpoint·提取·九宫格·照片