莫烦PYTHON——Matplotlib画图教程 学习心得(2)3 画图种类3.1 Scatter 散点图3.2 Bar 柱状图3.3 Contours 等高线图3.4 Image 图片3.5 3D 数据4 多图合并显示4.1 Subplot 多合一显示4.2 Subplot 分格显示4.3 图中图4.4 次坐标轴5 动画5.1 Animation 动画 3 画图种类 3.1 Scatter 散点图 新建Python文件,输入 import matplotlib.pyplot as plt import numpy as np n = 1024 在Python的可视化领域,Matplotlib库是不可或缺的一部分,它提供了丰富的图形绘制功能,适用于各种数据展示和分析。本文主要探讨了Matplotlib中的几种基本图表类型,以及如何将多个图表组合在一起,甚至创建动画效果。 我们来看Scatter图,也就是散点图。散点图是一种用于表示两个变量之间关系的图形,每个点代表一个样本,X和Y轴分别对应不同的变量。在Matplotlib中,使用`scatter`函数创建散点图。例如,以下代码生成了一个包含1024个随机分布点的散点图: ```python import matplotlib.pyplot as plt import numpy as np n = 1024 # 数据大小 X = np.random.normal(0, 1, n) # 每个点的X值 Y = np.random.normal(0, 1, n) # 每个点的Y值 T = np.arctan2(Y, X) # 用于颜色值 plt.scatter(X, Y, s=75, c=T, alpha=0.5) # 创建散点图,s是点的大小,c是颜色,alpha是透明度 plt.xlim(-1.5, 1.5) # 设置X轴范围 plt.xticks(()) # 隐藏X轴刻度 plt.ylim(-1.5, 1.5) # 设置Y轴范围 plt.yticks(()) # 隐藏Y轴刻度 plt.show() ``` 接下来是Bar图,用于显示分类数据的统计信息。在Matplotlib中,`bar`函数可以用来创建柱状图。例如,你可以通过如下代码创建一个简单的柱状图: ```python labels = ['A', 'B', 'C', 'D', 'E'] values = [5, 12, 8, 16, 9] plt.bar(labels, values) plt.xlabel('类别') plt.ylabel('数量') plt.title('各类别数量统计') plt.show() ``` 再来说说等高线图(Contours),它用于描绘二维数据的连续变化。使用`contour`或`contourf`函数可以创建等高线图,后者会填充颜色以表示数据的连续性。例如: ```python x = np.linspace(-3, 3, 100) y = np.linspace(-3, 3, 100) X, Y = np.meshgrid(x, y) Z = np.sqrt(X**2 + Y**2) plt.contourf(X, Y, Z) plt.colorbar() # 添加颜色条 plt.title('二维数据等高线图') plt.show() ``` Image图则是用于显示像素数据,比如图片。`imshow`函数可以将二维数组数据转换为图像。例如,加载并显示一张图片: ```python from matplotlib import image img = image.imread('example.jpg') plt.imshow(img) plt.axis('off') # 关闭坐标轴 plt.title('示例图片') plt.show() ``` 3D数据的可视化可以通过`Axes3D`模块实现,它可以创建3D散点图、柱状图等。例如,3D散点图: ```python from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = np.random.standard_normal(100) y = np.random.standard_normal(100) z = np.random.standard_normal(100) ax.scatter(x, y, z) ax.set_xlabel('X轴') ax.set_ylabel('Y轴') ax.set_zlabel('Z轴') plt.show() ``` 多图合并显示是数据分析中常用的方法。Matplotlib通过`subplot`函数实现这一功能,可以创建多合一的显示或分格显示。例如,创建2x2的子图网格: ```python fig, axs = plt.subplots(2, 2) axs[0, 0].scatter(X, Y) axs[0, 1].bar(labels, values) axs[1, 0].contourf(X, Y, Z) axs[1, 1].imshow(img) plt.tight_layout() plt.show() ``` Matplotlib还支持创建动画。`FuncAnimation`函数允许我们制作基于时间序列的数据动画。例如,创建一个随时间变化的简单动画: ```python import matplotlib.animation as animation fig, ax = plt.subplots() def animate(i): ax.clear() x = np.linspace(0, 2 * np.pi, 100) y = np.sin(x + i / 10.0) ax.plot(x, y) ax.set_title(f'帧 {i}') ani = animation.FuncAnimation(fig, animate, frames=200, interval=20) plt.show() ``` Matplotlib是一个强大且灵活的绘图工具,通过掌握以上基础知识,你可以轻松地创建各种复杂的图表,进行数据可视化,无论是科学研究还是数据报告,都能得心应手。而结合其他Python库如Pandas和NumPy,数据处理和可视化的能力将进一步提升。



























- 粉丝: 5
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 项目管理的个人工作总结.doc
- 网络环境的专题教学设计市公开课一等奖百校联赛特等奖课件.pptx
- 物联网业务及技术培训PPT课件.ppt
- 物联网应用技术专业现代学徒制教学改革研究.docx
- 其他网络营销方法.pptx
- 浅析企业财务软件的帐务处理【会计实务操作教程】.pptx
- 软考项目管理师详解大全之过程记忆口诀详解.doc
- 大型网吧网络系统设计方案解析.doc
- 软件工程基础知识论述.pptx
- 京宁热电公司信息化发展战略的制定与实施.doc
- 项目十三 使用Excel制作成绩分析表.pptx
- 新产品研发流程管理-研发项目管理与研发绩效管理.doc
- 软件工程-图书管理系统.doc
- 生物制药工艺学基因工程制药1.ppt
- 嵌入式系统的定义及特点.doc
- 最新网络安全技术解读PPT.pptx


