【Matplotlib三种基础图形】

本文介绍了如何使用Matplotlib库在Python中绘制折线图、柱状图和散点图。通过示例代码详细展示了绘制过程,包括设置坐标轴标签、添加图例、绘制注释文本等,帮助读者掌握数据可视化的基本技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

折线图(line chart)
是我们日常工作、学习中经常使用的一种图表,它可以直观的反映数据的变化趋势。与绘制柱状图、饼状图等图形不同,Matplotlib 并没有直接提供绘制折线图的函数,因此本节着重讲解如何绘制一幅折线图。
绘制单条折线
下面示例是关于 C语言中文网用户活跃度的折线图:

import matplotlib.pyplot as plt
#准备绘制数据
x = ["Mon", "Tues", "Wed", "Thur", "Fri","Sat","Sun"]
y = [20, 40, 35, 55, 42, 80, 50]
# "g" 表示红色,marksize用来设置'D'菱形的大小
plt.plot(x, y, "g", marker='D', markersize=5, label="周活")
#绘制坐标轴标签
plt.xlabel("登录时间")
plt.ylabel("用户活跃度")
plt.title("C语言中文网活跃度")
#显示图例
plt.legend(loc="lower right")
#调用 text()在图像上绘制注释文本
#x1、y1表示文本所处坐标位置,ha参数控制水平对齐方式, va控制垂直对齐方式,str(y1)表示要绘制的文本
for x1, y1 in zip(x, y):
    plt.text(x1, y1, str(y1), ha='center', va='bottom', fontsize=10)
plt.show()

显示结果如下:
在这里插入图片描述

柱状图
是一种用矩形柱来表示数据分类的图表,柱状图可以垂直绘制,也可以水平绘制,它的高度与其所表示的数值成正比关系。柱状图显示了不同类别之间的比较关系,图表的水平轴 X 指定被比较的类别,垂直轴 Y 则表示具体的类别值。

Matplotlib 提供了bar()函数来绘制柱状图,它可以应用在 MATLAB 样式以及面向对象的绘图方法中。当它与 axes 对象一起使用时,其语法格式如下:
ax.bar(x, height, width, bottom, align)

该函数的参数说明,如下表所示:

bar()函数参数说明
x 一个标量序列,代表柱状图的x坐标,默认x取值是每个柱状图所在的中点位置,或者也可以是柱状图左侧边缘位置。
height 一个标量或者是标量序列,代表柱状图的高度。
width 可选参数,标量或类数组,柱状图的默认宽度值为 0.8。
bottom 可选参数,标量或类数组,柱状图的y坐标默认为None。
algin 有两个可选项 {“center”,“edge”},默认为 ‘center’,该参数决定 x 值位于柱状图的位置。
该函数的返回值是一个 Matplotlib 容器对象,该对象包含了所有柱状图。

下面是一个关于 Matplotlib 柱状图的简单示例。它用来显示了不同编程语言的学习人数。

import matplotlib.pyplot as plt
#创建图形对象
fig = plt.figure()
#添加子图区域,参数值表示[left, bottom, width, height ]
ax = fig.add_axes([0,0,1,1])
#准备数据
langs = ['C', 'C++', 'Java', 'Python', 'PHP']
students = [23,17,35,29,12]
#绘制柱状图
ax.bar(langs,students)
plt.show()

在这里插入图片描述
Scatter散点图
首先,先引入matplotlib.pyplot简写作plt,再引入模块numpy用来产生一些随机数据。生成1024个呈标准正态分布的二维数据组 (平均数是0,方差为1) 作为一个数据集,并图像化这个数据集。每一个点的颜色值用T来表示:

import matplotlib.pyplot as plt
import numpy as np
 
n = 1024    # data size
X = np.random.normal(0, 1, n) # 每一个点的X值
Y = np.random.normal(0, 1, n) # 每一个点的Y值
T = np.arctan2(Y,X) # for color value

数据集生成完毕,现在来用scatterplot这个点集,输入X和Y作为location,size=75,颜色为T,color map用默认值,透明度alpha 为 50%。 x轴显示范围定位(-1.5,1.5),并用xtick()函数来隐藏x坐标轴,y轴同理:

plt.scatter(X, Y, s=75, c=T, alpha=.5)
 
plt.xlim(-1.5, 1.5)
plt.xticks(())  # ignore xticks
plt.ylim(-1.5, 1.5)
plt.yticks(())  # ignore yticks
 
plt.show()

最终呈现结果如下图:
在这里插入图片描述

### 使用 Matplotlib 创建 3D 图形 MatplotlibPython 中强大的可视化库,能够创建各种类型的图表,其中包括复杂的 3D 图形。为了更好地理解和应用这些功能,在此提供一段简单的代码来展示如何利用该库中的 `mplot3d` 工具包实现基本的三维绘图操作。 #### 导入必要的模块并初始化画布 首先需要导入所需的库,并设置好基础环境: ```python import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib.pyplot as plt ``` 接着可以定义一些测试数据集用于绘制不同种类的 3D 图像。这里以正弦波为例说明具体的实施过程[^2]。 #### 绘制 3D 散点图 通过指定 x, y 和 z 坐标的数组,可以直接调用 `scatter()` 方法生成散点分布情况: ```python 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) plt.show() ``` 这段程序将会显示一个由随机数值构成的空间内散布着多个离散点的画面[^3]。 #### 构建 3D 表面图 对于连续变化的数据,则更适合采用表面形式展现其趋势特征。下面的例子展示了怎样基于给定函数表达式的 X-Y 平面上各位置对应的 Z 轴高度值构建曲面模型: ```python def f(x, y): return np.sin(np.sqrt(x ** 2 + y ** 2)) x = np.linspace(-6, 6, 30) y = np.linspace(-6, 6, 30) X, Y = np.meshgrid(x, y) Z = f(X, Y) fig = plt.figure() ax = fig.add_subplot(projection='3d') ax.plot_surface(X, Y, Z, cmap='viridis', edgecolor='none') plt.show() ``` 上述脚本中使用了颜色映射 (`cmap`) 参数来自定义视觉效果;而 `edgecolor='none'` 则去除了网格线以便更清晰地观察整体形态[^5]。 #### 添加更多样式选项 还可以继续探索其他参数调整的可能性,比如改变视角角度、增加标签注解或是引入动画特效等高级特性,从而让最终成果更具表现力和交互性[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值