Python日记(8)——matplotlib基础入门(3)

作者:快去debug2024.01.17 22:40浏览量:4

简介:本次日记将介绍如何使用matplotlib库进行更复杂的可视化操作,包括多子图、样式设置和数据可视化。

在Python中,matplotlib是一个非常流行的数据可视化库。通过使用matplotlib,我们可以轻松地创建各种图表,从简单的线图到复杂的3D图形。在本篇日记中,我们将深入学习matplotlib的一些更高级功能,包括多子图、样式设置和数据可视化。
1. 多子图(Subplots)
在matplotlib中,我们可以使用subplot2grid函数创建多子图。这个函数允许我们在一个图形窗口中创建多个子图,从而更好地比较和展示数据。下面是一个简单的例子:

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. x = np.linspace(0, 10, 100)
  4. y1 = np.sin(x)
  5. y2 = np.cos(x)
  6. fig = plt.figure()
  7. ax1 = plt.subplot2grid((5,5),(0,0,4), colspan=5)
  8. ax1.plot(x, y1)
  9. ax1.set_title('sin(x)')
  10. ax2 = plt.subplot2grid((5,5),(1,0,4), rowspan=4)
  11. ax2.plot(x, y2)
  12. ax2.set_title('cos(x)')
  13. plt.show()

在这个例子中,我们创建了一个5x5的图形网格,并在其中放置了两个子图。第一个子图显示了sin(x)的图形,第二个子图显示了cos(x)的图形。通过调整子图的参数,我们可以控制子图的位置和大小。
2. 样式设置
matplotlib允许我们自定义图形的样式,包括颜色、字体、线型等。我们可以使用rcParams函数来设置全局样式,或者在创建图形时指定每个对象的样式。下面是一个例子:

  1. import matplotlib.pyplot as plt
  2. import numpy as np
  3. plt.rcParams['font.size'] = 14 # 设置全局字体大小为14
  4. plt.rcParams['lines.linewidth'] = 2 # 设置全局线宽为2
  5. plt.rcParams['axes.facecolor'] = 'white' # 设置背景颜色为白色
  6. x = np.linspace(0, 10, 100)
  7. y = np.sin(x)
  8. plt.plot(x, y, color='red', linewidth=3) # 指定当前线条的颜色和线宽为红色和3
  9. plt.title('sin(x)', fontsize=20) # 指定标题的字体大小为20
  10. plt.xlabel('X-label', fontsize=14) # 指定X轴标签的字体大小为14
  11. plt.ylabel('Y-label', fontsize=14) # 指定Y轴标签的字体大小为14
  12. plt.show()

在这个例子中,我们使用了rcParams函数来设置全局样式,然后在创建图形时指定了每个对象的样式。通过这种方式,我们可以轻松地定制我们想要的图形样式。
3. 数据可视化
数据可视化是matplotlib的主要用途之一。我们可以使用matplotlib来展示各种类型的数据,包括时间序列、条形图、饼图等。下面是一个简单的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
data = {‘A’: np.random.rand(50), ‘B’: np.random.rand(50), ‘C’: np.random.rand(50)} # 随机生成三个数据集
labels = list(data.keys()) # 获取数据集的标签列表
sizes = [data[label].size for label in labels] # 获取每个数据集的大小列表
colors = [‘b’, ‘g’, ‘r’] # 定义三个颜色值列表,分别对应三个数据集的颜色值
fig = plt.figure(figsize=(10,6)) # 创建一个10x6的图形窗口,用于展示数据集的条形图或饼图等图形类型。
ax = fig.add_axes([0, 0, 1, 1]) # 在图形窗口中创建一个坐标轴对象,用于绘制数据集的图形。这里的位置参数为[left, bottom, width, height],用于控制坐标轴的位置和大小。这里的位置参数设置为[0, 0, 1, 1],