matplotlib
是 Python 中最常用的绘图库之一,它提供了丰富的绘图功能,非常适合数据可视化。下面我将从整体逻辑开始,逐步深入到具体的例子
matplotlib绘图整体逻辑:
1、创建图像对象: plt.figure()
2、绘制数据 :plt.plot()
等函数绘制数据
3、设置坐标轴、标签、图表标题等;
现在,让我们通过一个例子来演示如何使用 matplotlib
绘制一个简单的线图。
# 导入matplotlib的pyplot模块,并简称为plt
import matplotlib.pyplot as plt
# 数据
# 定义x轴的数据点
x = [0, 1, 2, 3, 4]
# 定义y轴的数据点,这里是x的平方
y = [0, 1, 4, 9, 16]
# 创建图表
# 使用plt.figure()创建一个新的图表,并设置图表的大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制线图
# 使用plt.plot()绘制线图,传入x和y数据
# 设置线的颜色为蓝色,线型为实线,线宽为2
plt.plot(x, y, color='blue', linestyle='-', linewidth=2)
# 设置标题和坐标轴标签
# 使用plt.title()设置图表的标题
plt.title('Simple Line Plot')
# 使用plt.xlabel()和plt.ylabel()设置x轴和y轴的标签
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图例
# 使用plt.legend()添加图例,这里传入一个列表,包含图例的标签
plt.legend(['y = x^2'])
# 显示图表
# 使用plt.show()显示最终的图表
plt.show()
matplotlib
还能绘制其他类型数据图表。我们将分别讲解线图、散点图、条形图和热图的绘制方法,并通过示例来演示。
1. 线图(Line Plot)
线图用于显示随时间或其他连续变量而变化的数据。
示例:绘制一个简单的正弦波。
import matplotlib.pyplot as plt
import numpy as np
# 1. 线图
# 生成一个从0到10的线性空间,包含100个点
x = np.linspace(0, 10, 100)
# 计算这些点的正弦值
y = np.sin(x)
# 创建一个图表,设置大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制线图,设置颜色为蓝色,标签为'sin(x)'
plt.plot(x, y, label='sin(x)', color='blue')
# 设置图表标题
plt.title('Line Plot of Sine Wave')
# 设置x轴和y轴的标签
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图例
plt.legend()
# 显示图表
plt.show()
2. 散点图(Scatter Plot)
散点图用于显示两个变量之间的关系,每个点代表一个数据点。
示例:绘制一些随机数据点。
import matplotlib.pyplot as plt
import numpy as np
# 2. 散点图
# 生成两组随机数据,每组50个点
x = np.random.rand(50)
y = np.random.rand(50)
# 创建一个图表,设置大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制散点图,设置颜色为绿色,标签为'Random Points'
plt.scatter(x, y, label='Random Points', color='green')
# 设置图表标题
plt.title('Scatter Plot of Random Points')
# 设置x轴和y轴的标签
plt.xlabel('X-axis')
plt.ylabel('Y-axis')
# 显示图例
plt.legend()
# 显示图表
plt.show()
3. 条形图(Bar Plot)
条形图用于显示不同类别之间的比较。
示例:显示不同城市的温度。
import matplotlib.pyplot as plt
# 3. 条形图
# 定义一组城市和对应的温度
cities = ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
temperatures = [18, 24, 15, 28, 35]
# 创建一个图表,设置大小为8x6英寸
plt.figure(figsize=(8, 6))
# 绘制条形图,设置颜色为橙色
plt.bar(cities, temperatures, color='orange')
# 设置图表标题
plt.title('Bar Plot of City Temperatures')
# 设置x轴和y轴的标签
plt.xlabel('City')
plt.ylabel('Temperature (°C)')
# 显示图表
plt.show()
4. 热力图(Heatmap)
热图用于显示矩阵数据,其中每个单元格的颜色代表其值。
import matplotlib.pyplot as plt
import numpy as np
# 4. 热图
# 生成一个10x10的随机矩阵
data = np.random.rand(10, 10)
# 创建一个图表,设置大小为8x6英寸
plt.figure(figsize=(8, 6))
# 使用热图显示数据,设置颜色映射为'hot'
plt.imshow(data, cmap='hot')
# 添加颜色条,设置标签为'Value'
plt.colorbar(label='Value')
# 设置图表标题
plt.title('Heatmap of Random Data')
# 显示图表
plt.show()
在上面的代码中,我们分别演示了如何使用 matplotlib
绘制线图、散点图、条形图和热图。每种图表都通过不同的函数和方法来创建,展示了 matplotlib
的多样性和灵活性。
以下是一些常用的plt
函数和它们的基本用途:
-
plt.plot()
: 用于绘制线图。可以绘制点、线、多边形等。 -
plt.scatter()
: 用于绘制散点图。 -
plt.bar()
: 用于绘制条形图。 -
plt.hist()
: 用于绘制直方图。 -
plt.imshow()
: 用于显示图像,常用于显示矩阵数据。 -
plt.subplot()
: 用于创建子图,可以在一个图窗中绘制多个图表。 -
plt.figure()
: 用于创建一个新的图窗。 -
plt.title()
: 用于设置图表的标题。 -
plt.xlabel()
和plt.ylabel()
: 用于设置x轴和y轴的标签。 -
plt.legend()
: 用于添加图例。 -
plt.colorbar()
: 用于添加颜色条,常用于显示图像或某些图表的颜色映射。 -
plt.show()
: 用于显示最终的图表。 -
plt.savefig()
: 用于将图表保存为文件,支持多种格式如PNG、PDF、SVG等。 -
plt.axis()
: 用于设置或获取坐标轴的范围。 -
plt.grid()
: 用于添加或删除网格线。