【python绘图(一)】Python数据分析和可视化

这篇具有很好参考价值的文章主要介绍了【python绘图(一)】Python数据分析和可视化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

2. 绘制曲面图

3. 绘制曲面投影图

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

5. 绘制曲面图

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

数据分析包括探索、清理和转换数据以从中提取有用信息。Python有许多库可以使数据分析变得更容易,例如Pandas、NumPy和SciPy。以下是使用Python进行数据分析的基本步骤:

  1. 加载数据:您可以使用Pandas从各种来源加载数据,例如CSV、Excel文件、SQL数据库或API。

  2. 探索数据:使用Pandas查看数据及其结构。您可以检查空值、数据类型和摘要统计信息。此步骤有助于更好地了解数据并识别任何问题。

  3. 清理数据:您可以使用Pandas处理缺失值、重复值、异常值和不正确的数据。在分析数据之前,数据清理是必不可少的步骤。

  4. 转换数据:Pandas提供了一些转换数据的工具,包括筛选、分组、合并和透视。此步骤有助于为分析数据做准备。

  5. 分析数据:您可以使用Python库,例如NumPy、SciPy和Pandas进行各种类型的分析,包括统计分析、机器学习和数据建模。

可视化是传达数据洞察力和模式的强大工具。Python有许多数据可视化库,包括Matplotlib、Seaborn和Plotly。以下是使用Python创建可视化的基本步骤:

  1. 加载数据:您可以像上面描述的那样加载数据。

  2. 选择可视化:选择适当的可视化方式,例如散点图、条形图、热图等。

  3. 创建可视化:使用所选库创建可视化,包括选择数据、定义图表类型和自定义图表外观。

  4. 自定义可视化:您可以自定义图表的各种特征,包括轴标签、标题、颜色和注释。

  5. 保存或显示可视化:一旦您创建和自定义了可视化,可以将其保存到文件或在Jupyter笔记本或其他Python环境中显示。

使用Python进行数据分析和可视化是一个广阔的领域,这仅仅是一个概述。

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

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# 创建三维图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 生成数据
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
x, y = np.meshgrid(x, y)
r = np.sqrt(x ** 2 + y ** 2)
z = np.sin(r)

# 绘制曲面图
ax.plot_surface(x, y, z, cmap='viridis')

# 绘制投影图
ax.contourf(x, y, z, zdir='z', offset=-15, cmap='viridis')

# 调整Z方向距离
ax.set_zlim(-15, 3)

# 显示图形
plt.show()

python数据分析与可视化,python

这是一个使用matplotlib库创建3D图形的Python代码,包括曲面图和等高线投影图。

代码的第一部分导入必要的库并设置3D图形。第二部分生成数据,该数据是xy的函数,并使用numpy库计算相应的z值。第三部分使用ax.plot_surface()函数绘制曲面图和ax.contourf()函数绘制等高线投影图。cmap参数指定用于绘图的颜色映射。

ax.set_zlim()函数用于调整Z轴限制,并使用plt.show()函数显示图形。

总体而言,该代码创建了一个3D图形,其中包括曲面图和等高线投影图,使用颜色映射来显示函数在z方向上的变化。

2.  绘制曲面图

python数据分析与可视化,python

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

# 创建三维图形
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 生成数据
x = np.arange(5)
y = np.arange(5)
x, y = np.meshgrid(x, y)
z = np.array([[0, 1, 2, 3, 4],
              [5, 6, 7, 8, 9],
              [10, 11, 12, 13, 14],
              [15, 16, 17, 18, 19],
              [20, 21, 22, 23, 24]])

# 绘制曲面图
ax.plot_surface(x, y, z)

# 设置坐标轴标签
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

# 显示图形
plt.show()

3. 加载三列数据文件,绘制曲面投影图

python数据分析与可视化,python

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata

# 加载数据
data = np.loadtxt('fes.dat')
x = data[:, 0]
y = data[:, 1]
z = data[:, 2]*4.3597*6.022*100

# 定义网格
xi = np.linspace(min(x), max(x), 100)
yi = np.linspace(min(y), max(y), 100)
X, Y = np.meshgrid(xi, yi)

# 插值数据到网格上
Z = griddata((x, y), z, (X, Y), method='cubic')

# 绘制投影图
plt.imshow(Z, cmap='viridis', extent=[min(xi), max(xi), min(yi), max(yi)], origin='lower')

# 添加标签和标题
plt.xlabel('X')
plt.ylabel('Y')
plt.title('等高线投影图')

# 添加色标
plt.colorbar()

# 显示图形
plt.show()

 4. 加载三列数据文件,同时绘制曲面图和投影图,用两个图展示

python数据分析与可视化,python

import numpy as np
import matplotlib.pyplot as plt
from scipy.interpolate import griddata
from mpl_toolkits.mplot3d import Axes3D

# 加载数据
data = np.loadtxt('fes.dat')
x = data[:, 0]
y = data[:, 1]
z = data[:, 2]*4.3597*6.022*100

# 定义网格
xi = np.linspace(min(x), max(x), 100)
yi = np.linspace(min(y), max(y), 100)
X, Y = np.meshgrid(xi, yi)

# 插值数据到网格上
Z = griddata((x, y), z, (X, Y), method='cubic')

# 绘制投影图
fig = plt.figure(figsize=(10, 5))

ax1 = fig.add_subplot(1, 2, 1)
im = ax1.imshow(Z, cmap='viridis', extent=[min(xi), max(xi), min(yi), max(yi)], origin='lower')
ax1.set_xlabel('X')
ax1.set_ylabel('Y')
ax1.set_title('等高线投影图')
fig.colorbar(im, ax=ax1)

# 绘制曲面图
ax2 = fig.add_subplot(1, 2, 2, projection='3d')
ax2.plot_surface(X, Y, Z, cmap='viridis')
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
ax2.set_zlabel('Z')
ax2.set_title('3D曲面图')

# 显示图形
plt.show()

5. 加载三列数据文件,绘制曲面图

python数据分析与可视化,python

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 加载数据
data = np.loadtxt('fes.dat')
x = data[:, 0]
y = data[:, 1]
z = data[:, 2]*4.3597*6.022*100

# 创建3D坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制曲面
ax.plot_trisurf(x, y, z, cmap='viridis')

# 添加标签和标题
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('曲面图')

# 显示图形
plt.show()

6. 在同一张图中绘制曲面图及其二维填色图

python数据分析与可视化,python

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from scipy.interpolate import griddata

# 设置 DPI,图像清晰度
# 通常在 100 到 300 DPI 之间选择一个合适的值即可。如果需要更高的分辨率,可以考虑使用矢量格式的图像,如 PDF、SVG 等,它们不受 DPI 的限制,可以随意缩放而不会失去清晰度。
plt.rcParams['figure.dpi'] = 600

# 加载数据
data = np.loadtxt('fes.dat')
x = data[:, 0]
y = data[:, 1]
z = data[:, 2]*4.3597*6.022*100

# 创建3D坐标轴
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# 绘制曲面
ax.plot_trisurf(x, y, z, cmap='viridis')

# 添加标签和标题
ax.set_xlabel('Ti-B coordination number')
ax.set_ylabel('Ti-Al coordination number')
ax.set_zlabel('Energy (kJ/mol)')
ax.set_title('3-dimension contour and surface plot')

# 定义网格
xi = np.linspace(min(x), max(x)+0.5, 500)
yi = np.linspace(min(y)-0.5, max(y), 500)
X, Y = np.meshgrid(xi, yi)

# 设置纵轴坐标刻度范围
# ax.set_zlim(-30, 0)

# 插值数据到网格上
Z = griddata((x, y), z, (X, Y), method='linear')

# 绘制投影图
contour = ax.contourf(X, Y, Z, cmap='viridis', levels=40, offset=-25)
# fig.colorbar(contour)

# 添加colorbar
# fig.add_axes() 方法用于在图形中添加新的坐标轴对象,参数指定了新坐标轴的位置和大小。这个方法接受一个参数列表 [left, bottom, width, height],这里的 left 表示新坐标轴的左边缘位置, bottom 表示下边缘位置, width 表示坐标轴的宽度, height 表示坐标轴的高度。
cbar_ax = fig.add_axes([0.88, 0.10, 0.02, 0.7])
fig.colorbar(contour, cax=cbar_ax)

# 设置图片大小
# fig.set_size_inches(10, 6)

# 显示图形
plt.show()

这个脚本从名为'fes.dat'的文件中加载数据,文件包含三列数据:第一列和第二列对应于二维平面上的x和y坐标,第三列对应于每个点的值z。脚本然后使用matplotlib将数据绘制成3D曲面,添加轴标签和标题,并使用scipy将数据插值到网格上。最后,它创建一个二维等高线图,将插值数据投影到x-y平面上,并显示整个图形。

以下是脚本的详细说明:

  1. 导入必要的库:numpy、matplotlib、mpl_toolkits.mplot3d和scipy.interpolate。
  2. 使用numpy.loadtxt从文件'fes.dat'中加载数据,并将x、y和z数据提取到单独的数组中。
  3. 创建一个新的图形并添加一个3D轴,使用matplotlib.pyplot.figure和matplotlib.pyplot.subplot。
  4. 使用mpl_toolkits.mplot3d.Axes3D.plot_trisurf将原始数据绘制成3D曲面。
  5. 使用mpl_toolkits.mplot3d.Axes3D.set_xlabel、mpl_toolkits.mplot3d.Axes3D.set_ylabel、mpl_toolkits.mplot3d.Axes3D.set_zlabel和mpl_toolkits.mplot3d.Axes3D.set_title将轴标签和标题添加到绘图中。
  6. 使用numpy.linspace和numpy.meshgrid定义一个新的x-y点网格。
  7. 使用scipy.interpolate.griddata将原始数据插值到新网格上。
  8. 使用mpl_toolkits.mplot3d.Axes3D.contourf创建插值数据的二维等高线图。
  9. 使用matplotlib.pyplot.show显示整个图形。

注意,# fig.colorbar(contour)行被注释掉了。如果取消注释这行代码,它会向图中添加一个颜色条,显示颜色和z值之间的对应关系。文章来源地址https://www.toymoban.com/news/detail-760215.html

参考资料

  1. Matplotlib Official Website: Tutorials — Matplotlib 3.7.0 documentation
  2. Seaborn Official Website: User guide and tutorial — seaborn 0.12.2 documentation
  3. Plotly Official Website: https://plotly.com/python/
  4. DataCamp: https://www.datacamp.com/
  5. Udacity: Learn the Latest Tech Skills; Advance Your Career | Udacity
  6. Coursera: https://www.coursera.org/

到了这里,关于【python绘图(一)】Python数据分析和可视化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python毕业设计 抖音短视频数据分析与可视化 - python 大数据 可视化

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月02日
    浏览(31)
  • python毕设选题 - 大数据商城人流数据分析与可视化 - python 大数据分析

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月19日
    浏览(38)
  • python天气数据可视化分析

    网:tianqihoubao 对深圳近几月的天气进行分析可视化    get函数 用于get网页数据并进行分析讲需要的天气数据进行导出  数据都在tr便签里所以只提取tr标签里的数据  调用  提取深圳近三个月的数据,并用pandas库中的concat将三个get完的数据进行整合 表格展示 导出的表格数据

    2024年02月11日
    浏览(30)
  • 大数据可视化——基于Python豆瓣电影数据可视化分析系统

    本项目旨在通过对豆瓣电影数据进行综合分析与可视化展示,构建一个基于Python的大数据可视化系统。通过数据爬取收集、清洗、分析豆瓣电影数据,我们提供了一个全面的电影信息平台,为用户提供深入了解电影产业趋势、影片评价与演员表现的工具。项目的关键步骤包括

    2024年01月21日
    浏览(43)
  • python基于大数据的手机分析系统与可视化 -可视化大屏分析

    前言 该系统采用了多种数据源,包括用户行为数据、社交数据、市场趋势数据等,通过数据挖掘、统计分析等手段,对这些数据进行分析和建模。其中,用户行为数据包括用户使用手机的频率、时间、地理位置、应用使用情况等,社交网络数据包括用户在交网络上的行为、好

    2024年02月03日
    浏览(36)
  • Python大作业——爬虫+可视化+数据分析+数据库(可视化篇)

    相关链接 Python大作业——爬虫+可视化+数据分析+数据库(简介篇) Python大作业——爬虫+可视化+数据分析+数据库(爬虫篇) Python大作业——爬虫+可视化+数据分析+数据库(数据分析篇) Python大作业——爬虫+可视化+数据分析+数据库(数据库篇) 由于该程序会通过与数据库

    2024年02月04日
    浏览(49)
  • Python 数据分析与可视化实战

    Python作为一门优秀的编程语言,受到很多程序员和编程爱好者的青睐。近年来,Python还在办公领域大展拳脚,许多白领纷纷加入了学习Python的行列。这是因为Python在数据的采集、处理、分析与可视化方面有着独特的优势,能够帮助职场人士从容应对大数据时代的挑战。 要想编

    2024年02月01日
    浏览(27)
  • python毕设选题 - 基于大数据的抖音短视频数据分析与可视化 - python 大数据 可视化

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月24日
    浏览(36)
  • 毕设 B站数据分析与可视化 - python 数据分析 大数据

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月10日
    浏览(35)
  • [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化

    本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化。GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口。GeoPandas扩展了Pandas的数据类型,并使用matplotlib进行绘图。GeoPandas官方仓库地址为:GeoPandas。GeoPandas的官方文档地址为:GeoPandas-doc。关于Geo

    2023年04月09日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包