一、简单的绘图操作
一个简单的绘图操作
python代码示例如下:
# 画图
x=np.linspace(-5,5,100)
y=x*x-2
plt.figure()
plt.plot(x,y,label='line')
plt.plot([-4,4],[0,0])
plt.show()
# 画图
得到的结果:
二、相关API说明
1.numpy模块
numpy:
numpy
是 Python 中的一个开源的数学计算库,它提供了大量的数值计算函数和工具,是科学计算、数据分析和机器学习等领域中最常用的库之一。numpy
提供了一个高性能的多维数组对象和一系列用于操作这些数组的函数。
numpy
的主要特点包括:
- 高性能的多维数组对象
ndarray
,支持向量化运算和广播功能。 - 丰富的通用函数库(
ufunc
),包括数学运算、逻辑运算、位运算等等。 - 线性代数、傅里叶变换和随机数生成等功能的内置函数。
- 提供了灵活的数组索引、切片、布尔运算等高效的数组操作方式。
- 可以与其他科学计算库(如
scipy
和pandas
)无缝集成,扩展了更多的计算功能。
下面是一个使用 numpy
模块进行数组操作的简单示例:
import numpy as np
# 创建一个长度为 10 的一维数组
a = np.arange(10)
# 将数组元素乘以 2
b = a * 2
# 将数组元素取平方
c = np.square(a)
# 将数组元素求和
d = np.sum(a)
print("a:", a)
print("b:", b)
print("c:", c)
print("d:", d)
在上面的示例中,我们使用 numpy
模块创建了一个一维数组 a
,并对数组进行了一些简单的操作,例如将数组元素乘以 2、取平方和求和等等。可以看出,numpy
的操作非常简单直观,且具有较高的效率和灵活性。
linspace:
linspace
是 Python 中 numpy
模块中的一个函数,用于在指定的间隔内返回等间隔的数字。
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
函数的参数如下:
-
start
: 序列的起始值。 -
stop
: 序列的结束值,该值包含在序列中,如果endpoint
设为 False,则该值不包含在序列中。 -
num
: 要生成的等间隔样例数量,默认为50。 -
endpoint
: 序列中是否包含stop
值,为 True 则包含。 -
retstep
: 如果为 True,返回样例之间的间距。 -
dtype
: 输出的数据类型,默认为None
。 -
axis
: 沿着哪个轴生成样例,默认为 0。
下面是一个示例,用于生成从 0 到 10(包括 10)的 6 个等间距样例:
import numpy as np
x = np.linspace(0, 10, 6)
print(x) # 输出:array([ 0., 2., 4., 6., 8., 10.])
在上面的示例中,num
参数被设置为 6,因此生成了 6 个等间距样例,包括起始值和终止值。
2.matplotlib模块
matplotlib.pyplot:
matplotlib.pyplot
是 matplotlib
库中的一个子模块,提供了类似于 MATLAB 的绘图接口,是 Python 中常用的数据可视化工具之一。通过 pyplot
,用户可以轻松地绘制各种类型的图形,例如折线图、散点图、柱状图、饼状图等等。
使用 pyplot
绘图时,一般先导入 matplotlib.pyplot
模块,然后调用其中的函数来绘制图形。下面是一个简单的例子,绘制了一条折线图:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.show()
在上面的代码中,我们使用 numpy
库生成了一个包含 100 个元素的一维数组 x
,其值从 0 到 2Π 均匀分布。然后使用 numpy
库的 sin
函数计算了对应的 y
值。接着使用 plt.plot()
函数绘制了一条折线图,并使用 plt.show()
函数显示了该图形。
结果如下:
除了折线图,pyplot
还提供了许多其他类型的图形绘制函数,例如:
-
plt.scatter()
:绘制散点图; -
plt.bar()
:绘制柱状图; -
plt.hist()
:绘制直方图; -
plt.pie()
:绘制饼状图。
此外,pyplot
还提供了许多调整图形样式和布局的函数,例如:
-
plt.xlabel()
和plt.ylabel()
:设置坐标轴标签; -
plt.title()
:设置图形标题; -
plt.legend()
:添加图例; -
plt.xlim()
和plt.ylim()
:设置坐标轴范围; -
plt.subplots()
:创建子图。
以上仅是 pyplot
中部分常用函数的介绍,更详细的信息可以查看 matplotlib
官方文档。
plot:
plot
是 Python 中 matplotlib.pyplot
模块中的一个函数,用于绘制二维图形,如折线图、散点图、柱状图等等。下面是 plot
函数的一般用法:
import matplotlib.pyplot as plt
# 定义 x, y 数据
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
# 绘制折线图
plt.plot(x, y)
# 显示图形
plt.show()
在上面的示例中,我们首先导入了 matplotlib.pyplot
模块,然后定义了两个列表 x
和 y
,分别表示 x 轴和 y 轴上的数据。接着,我们使用 plt.plot(x, y)
函数绘制了一个折线图,并使用 plt.show()
函数显示图形。
结果如下:
plot
函数的一些常用参数如下:
-
x
: 用于绘制折线图的 x 坐标值数组,可以为一维数组、列表或者元组。 -
y
: 用于绘制折线图的 y 坐标值数组,可以为一维数组、列表或者元组。 -
fmt
: 格式化字符串,用于控制线条的颜色、样式和标记。例如,'r--o'
表示绘制一个红色虚线和圆圈的折线图。 -
linewidth
: 线条宽度,用于设置线条的粗细程度。 -
marker
: 线条标记,用于在折线上绘制标记点,例如圆圈、方形、星号等等。 -
markersize
: 标记点大小,用于设置标记点的大小。 -
label
: 数据标签,用于给绘制的线条或者标记点添加名称,方便图例显示。 -
color
: 线条颜色,用于设置线条的颜色。 -
alpha
: 线条透明度,用于设置线条的透明度。
下面是一个示例,用于绘制一个红色、虚线和圆圈的折线图:
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 绘制折线图
plt.plot(x, y, 'r--o', linewidth=2, markersize=6, label='sin(x)')
# 设置坐标轴标签和图例
plt.xlabel('x')
plt.ylabel('y')
plt.legend()
# 显示图形
plt.show()
在上面的示例中,我们使用 numpy
模块生成了一个长度为 100 的一维数组 x
,并使用 np.sin()
函数生成了一个对应的数组 y
,表示正弦函数的取值。然后,我们使用 plt.plot()
函数绘制了一个红色、虚线和圆圈的折线图,并使用 linewidth
和 markersize
参数分别设置了线条的宽度和标记点的大小。我们还使用 label
参数为折线图添加了一个数据标签,然后使用 plt.xlabel()
和 plt.ylabel()
函数为坐标轴添加了标签,并使用 plt.legend()
函数显示了图例。
结果如下:
除了折线图,plot
函数还可以用于绘制其他类型的图形,例如散点图、柱状图等等。不同类型的图形需要使用不同的参数来绘制,下面是一些常用的绘图参数:
- 散点图:使用
plt.scatter()
函数绘制,常用参数包括s
(点的大小)、c
(点的颜色)、marker
(点的形状)、alpha
(点的透明度)等等。 - 柱状图:使用
plt.bar()
或者plt.barh()
函数绘制,常用参数包括height
(柱子的高度)、width
(柱子的宽度)、align
(柱子的对齐方式)、color
(柱子的颜色)等等。 - 饼状图:使用
plt.pie()
函数绘制,常用参数包括x
(每个部分的数值)、labels
(每个部分的标签)、colors
(每个部分的颜色)等等。
绘图参数的具体用法可以参考 matplotlib
官方文档或者相关教程。
legend:
在 matplotlib 中,legend
是一个用于图例的对象,可以用于标识不同数据系列的含义。在绘制图形时,我们可以使用 label
参数为每个数据系列添加一个标签,然后调用 legend
函数将这些标签显示在图例中。
下面是一个简单的例子,使用 plot
函数绘制了两条折线图,并使用 label
参数为它们分别添加了标签,然后使用 legend
函数将这些标签显示在图例中:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 2*np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.plot(x, y1, label='sin(x)')
plt.plot(x, y2, label='cos(x)')
plt.legend()
plt.show()
在上面的代码中,我们先使用 numpy
库生成了一个包含 100 个元素的一维数组 x
,然后分别使用 numpy
库的 sin
和 cos
函数计算了对应的 y1
和 y2
值。接着使用 plt.plot()
函数绘制了两条折线图,并使用 label
参数为它们分别添加了标签。最后使用 plt.legend()
函数将这些标签显示在图例中,然后使用 plt.show()
函数显示了该图形。
legend
函数可以接受多个参数,用于调整图例的位置、字体、边框等等。例如,我们可以使用 loc
参数指定图例的位置,常用的参数包括:
-
best
:自动选择最佳位置; -
upper right
、upper left
、lower right
、lower left
:分别对应右上角、左上角、右下角、左下角; -
center
、center right
、center left
、lower center
、upper center
:分别对应中心、右中、左中、下中、上中。
除了 loc
参数,还有一些其他常用的参数,例如:
-
title
:设置图例标题; -
fontsize
:设置图例字体大小; -
frameon
:控制是否显示图例边框; -
ncol
:设置图例列数。
更多信息可以查看 matplotlib
官方文档。