pip install matplotlib
import matplotlib.pyplot
如果没有出现错误,就说明安装成功。
import matplotlib.pyplot as plt # as将这个库重命名为plt
X = range(-100, 101) # 将此范围所有的数字均包含在内
Y = [x ** 2 for x in X] # 列表推导式,
plt.plot(X, Y) # 绘制函数图像
plt.savefig('result1.jpg') # 保存生成图片
plt.show() # 将图片展示出来
重命名,将长串的函数库改一个容易书写的名字
生成范围内所有的数字
列表推导式(List Comprehension)是一种简洁地创建新列表的方法,它可以基于现有的列表、集合或其他可迭代对象快速生成新的列表。
列表推导式的基本语法如下:
[expression for item in iterable if condition]
其中:
X = [1, 2, 3, 4]
Y = [x ** 2 for x in X]
print(Y) # 输出:[1, 4, 9, 16]
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers) # 输出:[2, 4, 6]
words = ["Hello", "World", "Python"]
upper_words = [word.upper() for word in words]
print(upper_words) # 输出:['HELLO', 'WORLD', 'PYTHON']
列表推导式非常灵活,你可以根据具体需求使用条件语句、嵌套循环等来定制生成新列表的逻辑。但需要注意,如果列表推导式过于复杂,可能会降低代码的可读性和易维护性,所以在使用时要适度选择。
plot() 是 Matplotlib 库中用于绘制折线图的函数之一。它可以接受多个参数来定义折线的样式、颜色、标记等属性。
plt.plot(x, y, fmt, **kwargs)
简单的折线图:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.show()
自定义折线的样式和颜色:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y, 'r--', linewidth=2)
plt.show()
添加标记和网格:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y, 'bo-', markersize=8) # makersize表示圆点的大小
plt.grid(True) # 开启网格线的显示
plt.show()
这些示例只是 plot() 函数的一部分用法,你可以根据需要选择不同的格式字符串和其他属性来自定义绘制的折线图。 Matplotlib 还提供了许多其他函数和方法,用于绘制不同类型的图形和自定义图形的外观。
颜色:
线型:
标记:
它是Matplotlib库中用于保存图形的函数。
它可以将当前绘制的图形保存到指定文件路径中,支持多种常见的图像格式,例如PNG、JPEG、SVG等。
plt.savefig(filepath, format='png', dpi=300, bbox_inches='tight')
参数说明:
import matplotlib.pyplot as plt
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]
plt.plot(x, y)
plt.savefig('plot.png')
这段代码将绘制出线图,并将图形保存为名为 “plot.png” 的PNG文件。
你可以根据需要指定其他的文件格式、分辨率和边界框等参数来保存图形。另外,savefig() 函数需要在调用 show() 函数之前使用,因为 show() 函数会清空当前图形。
import matplotlib.pyplot as plt
import numpy
X = numpy.linspace(0, 2 * numpy.pi, 100)
Y = numpy.sin(X)
Z = numpy.cos(X)
plt.plot(X, Y)
plt.plot(X, Z)
plt.show()
NumPy(Numerical Python) 是一个开源的Python库,用于进行科学计算和数值运算。它提供了高效的多维数组对象、各种派生对象(如掩码数组和矩阵)以及用于快速操作数组的函数。NumPy是许多其他科学计算库的基础,例如SciPy、Pandas和Matplotlib。
以下是NumPy的一些常用功能和特性:
多维数组对象(ndarray):NumPy的核心数据结构是ndarray(n-dimensional array),它是一个用于存储同类型数据的多维数组。ndarray可以是一维、二维或更高维度的数组,可以包含整数、浮点数、布尔值等各种数据类型。
数值运算函数:NumPy提供了丰富的数值运算函数,包括数学函数(如三角函数、指数函数)、线性代数函数(如矩阵乘法、逆矩阵)、统计函数(如均值、标准差)等。
广播(Broadcasting):NumPy中的广播功能允许不同形状的数组在进行二进制操作时进行自动转换,从而避免了显式的循环操作。这样可以简化代码,并且提高了计算效率。
索引和切片:NumPy支持类似于Python列表的索引和切片操作,可以方便地访问数组的元素、行、列等部分,并进行修改或提取。
向量化操作:通过使用NumPy数组,你可以在整个数组上执行操作,而不需要循环遍历每个元素。这种向量化操作可以大大提高计算效率。
随机数生成:NumPy提供了各种随机数生成函数,包括均匀分布、正态分布、泊松分布等。
使用NumPy之前,你需要先安装它。你可以通过以下方式在Python中安装NumPy:
pip install numpy
linspace函数是NumPy中的一个函数,用于在指定的间隔内生成等间距的数字。它的基本语法如下:
numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
参数说明:
sin函数是NumPy中的一个数学函数,用于计算给定角度的正弦值。它的基本语法如下:
numpy.sin(x, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj])
参数说明:
import matplotlib.pyplot as plt
import random
count = 1024
X = [random.random() * 100 for i in range(count)]
Y = [random.random() * 100 for i in range(count)]
# random.random()用于生成一个介于0到1之间(不包括0和1)的随机浮点数
plt.scatter(X, Y)
plt.show()
scatter函数是Matplotlib库中的一个函数,用于绘制散点图。它可以在二维坐标系上绘制一组离散的点,并以不同的颜色或大小表示数据集中的特征。
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None)
常用参数说明:
import matplotlib.pyplot as plt
plt.bar([1980, 1985, 1990, 1995],
[1000, 3000, 4000, 5000], width=3)
plt.show()
bar函数是Matplotlib库中的一个函数,用于绘制柱状图。它可以在二维坐标系上绘制一组垂直或水平的柱形,并以不同的高度表示数据集中的特征。
matplotlib.pyplot.bar(x, height, width=0.8, bottom=None, align='center', data=None)
data = np.random.randn(10000)
print(data)
print(np.average(data))
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 8))
ax1.hist(data, 200)
ax2.boxplot(data)
plt.show()
randn函数是NumPy库中的一个随机数生成函数,用于生成符合标准正态分布(均值为0,标准差为1)的随机数。具体语法如下:
numpy.random.randn(d0, d1, ..., dn)
d0, d1, …, dn:可选参数,表示生成的随机数数组的维度。可以是整数或整数元组。
返回值:
返回一个具有指定维度的随机数数组,其元素服从标准正态分布。
subplots() 是 Matplotlib 中的一个函数,用于创建一个带有多个子图的图像窗口。具体语法如下:
fig, axes = plt.subplots(nrows=1, ncols=1, **kwargs)
在这行代码fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 8) 中的逗号是用来解包元组的语法。
plt.subplots() 函数返回一个包含图形对象和轴对象的元组。通过使用逗号,可以将这个元组进行解包,并将返回的对象分别赋值给 fig 和 (ax1, ax2)。
换句话说,fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 8)) 这行代码将 fig 指向图形对象,而 (ax1, ax2) 则指向包含两个轴对象的元组。
这种解包元组的方式可以方便地访问元组中的各个元素,使得代码更加简洁和可读。在这个例子中,我们可以直接使用 fig 来操作图形对象,使用 ax1 和 ax2 来操作各自的轴对象。
hist 是 Matplotlib 中的一个函数,用于绘制直方图。直方图是一种用于可视化数据分布的图形表示方法,它将数据划分为不同的区间,并计算每个区间内数据的频数或频率,然后以矩形条的形式显示。
plt.hist(x, bins=None, range=None, density=False, cumulative=False, **kwargs)
常用参数说明:
boxplot 是 Matplotlib 中的一个函数,用于绘制箱线图(Box Plot)。箱线图是一种用于显示数据分布和异常值的统计图表,它基于数据的五数概括(最小值、下四分位数、中位数、上四分位数、最大值)来展示数据的位置和离散程度。
plt.boxplot(x, notch=None, vert=None, patch_artist=None, **kwargs)
常用参数说明:
import matplotlib.pyplot as plt
data = [5, 67, 23, 43, 64]
plt.pie(data)
plt.show()
预定义颜色:
HTML颜色:
此颜色与HTML语言共同,以#开头如#FFABFF
灰度:
灰度是介于0到1的浮点数,0表示黑色,1表示白色。
import matplotlib.pyplot as plt
import numpy
X = numpy.linspace(-6, 6, 1024) # 均匀生成在-6到6之间的随机数
colors = ['red', 'yellow', 'b', 'c', '#FF00FF', '0.75']
for i in range(30):
plt.plot(X, -X ** 2 + (i + 1) * 2, color=colors[i % len(colors)])
plt.show()
import matplotlib.pyplot as plt
import numpy
A = numpy.random.standard_normal((100, 2))
A += numpy.array((-1, -1))
B = numpy.random.standard_normal((100, 2)) # 用于生成符合标准正态分布(均值为0,标准差为1)的随机数。
B += numpy.array((1, 1))
colors = ['red', 'yellow', 'b', 'c', '#FF00FF', '0.75']
plt.scatter(A[:, 0], A[:, 1], color=colors[0]) # A[:, 0] 是对数组 A 进行索引操作,提取出所有行的第一个元素,也就是数组 A 中所有点的 x 坐标。
plt.scatter(B[:, 0], B[:, 1], color=colors[2])
plt.scatter(A[:, 0], B[:, 1], color=colors[4], edgecolors=colors[2], s=200, linewidths=3)
plt.show()
color可以是一个颜色值,也可以是颜色值的序列
import matplotlib.pyplot as plt
import random
values = [random.randint(0, 99) for i in range(50)]
color_set = ['#FF00FF', '#FFFF00', 'r', 'b']
color_list = [color_set[random.randint(0, 3)] for i in range(50)]
plt.bar(range(len(values)), values, color=color_list)
plt.show()
colors需要设置一个颜色值的序列:
import matplotlib.pyplot as plt
import random
values = [random.random() for i in range(15)]
color_set = ['r', 'b', 'y', '0.5']
plt.pie(values, colors=color_set)
plt.show()
plot函数的linestyle关键字参数可以改变曲线的类型,该类型是字符串类型,默认是实线,可以设置成虚线或点画线。
import matplotlib.pyplot as plt
import numpy
X = numpy.linspace(-6, 6, 1024)
plt.plot(X, -X ** 2, color='r', linestyle='solid')
plt.plot(X, -X ** 2 + 3, color='b', linestyle='dashed')
plt.plot(X, -X ** 2 + 6, color='k', linestyle='dashdot')
plt.show()
是 NumPy 库中的一个函数,用于在指定的间隔内生成等间隔的一维数组。
linspace 函数常用于生成等间隔的坐标轴或在一定范围内生成一系列的数值,以便进行数据分析、可视化等操作。
例如,使用 plt.plot(x, y, linestyle=‘–’) 将绘制一条虚线。可以根据需要选择适合的 linestyle 类型来自定义线条样式。
bar的hatch参数设置,默认是实心,它的参数是一个固定的字符。
import matplotlib.pyplot as plt
import numpy
N = 8
A = numpy.random.random(N)
B = numpy.random.random(N)
plt.bar(range(N), A, color='b', hatch='x')
plt.bar(range(N), A + B, bottom=A, color='r', hatch='*')
plt.show()
import matplotlib.pyplot as plt
import numpy
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
X = numpy.linspace(-4, 4, 1024)
Y = 0.25 * (X + 4) * (X + 1) * (X - 2)
plt.title('多项式曲线')
plt.plot(X, Y, c='r')
plt.show()
是 Matplotlib 中的一个全局参数设置字典,用于配置默认的绘图参数。它包含了一系列可以被修改的属性,可以用来自定义绘图的外观和行为。
通过修改 rcParams 中的某些键值对,你可以改变 Matplotlib 绘图的默认设置。例如,你可以修改字体、线条样式、颜色映射等参数。
下面是一些常用的 rcParams 参数和对应的设置:
import matplotlib.pyplot as plt
import numpy
X = numpy.linspace(-4, 4, 1024)
Y = 0.25 * (X + 4) * (X + 1) * (X - 2)
plt.title(r'$f(x) = \frac{1}{4}(x+4)(x+1)(x-2)$')
plt.plot(X, Y, c='b')
plt.show()
import matplotlib.pyplot as plt
import numpy
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
X = numpy.linspace(-5, 5, 1024)
Y = 0.25 * (X + 4) * (X + 1) * (X - 2)
plt.title('Power curve')
plt.xlabel('空前速度')
plt.ylabel('Total drag')
plt.plot(X, Y, c='b')
plt.show()
import matplotlib.pyplot as plt
import numpy
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
X = numpy.linspace(-5, 5, 1024)
Y = 0.25 * (X + 4) * (X + 1) * (X - 2)
plt.text(-1, -0.3, '新的注释')`
plt.plot(X, Y, c='b')
plt.show()
plt.text(x, y, s, **kwargs)
其中:
import matplotlib.pyplot as plt
import numpy
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
X = numpy.linspace(-5, 5, 1024)
Y = 0.25 * (X + 4) * (X + 1) * (X - 2)
box = {
'facecolor': '0.75',
'edgecolor': 'b',
'boxstyle': 'round'
}
plt.text(-0.5, -0.2, 'abcde', bbox=box)
plt.plot(X, Y, c='r')
plt.show()
random 是 Python 中的一个内置模块,提供了一系列用于生成随机数的函数。以下是一些常用的 random 模块的函数:
import random
x = random.random()
print(x)
import random
x = random.randint(1, 10)
print(x)
import random
x = random.uniform(1, 5)
print(x)
import random
list = [1, 2, 3, 4, 5]
x = random.choice(list)
print(x)
import random
list = [1, 2, 3, 4, 5]
random.shuffle(list)
print(list)
这只是 random 模块提供的一些函数示例,还有其他功能丰富的函数可供使用。要使用 random 模块中的函数,您需要导入 random 模块,并使用 random.function_name 的方式调用相应的函数。
plt 是 matplotlib.pyplot 模块的常用别名,matplotlib.pyplot 是 Matplotlib 库中用于创建图形的子模块。以下是一些 plt 的常用绘图函数示例:
plot(x, y): 绘制折线图。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.plot(x, y)
plt.show()
scatter(x, y): 绘制散点图。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [1, 4, 9, 16, 25]
plt.scatter(x, y)
plt.show()
bar(x, height): 绘制柱状图。
import matplotlib.pyplot as plt
x = ['A', 'B', 'C', 'D']
y = [10, 20, 15, 25]
plt.bar(x, y)
plt.show()
hist(x, bins): 绘制直方图。
import matplotlib.pyplot as plt
import numpy as np
x = np.random.normal(0, 1, 1000)
plt.hist(x, bins=30)
plt.show()
pie(x, labels): 绘制饼图。
import matplotlib.pyplot as plt
x = [30, 20, 15, 35]
labels = ['A', 'B', 'C', 'D']
plt.pie(x, labels=labels)
plt.show()
这些是 matplotlib.pyplot 中常用的绘图函数示例,可以根据需要调用不同的函数来生成相应的图形。最后使用 plt.show() 来显示绘制的图形。
要使用这些函数,您需要导入 matplotlib.pyplot 模块,并使用 plt.function_name 的方式调用相应的函数。
注:此为学习笔记,教材参考《Python从菜鸟到高手》(李宁)