• Matplotlib 是一个广泛用于 Python 数据可视化的库


    Matplotlib 是一个广泛用于 Python 数据可视化的库,它提供了丰富的绘图功能,允许用户创建各种类型的图表,从简单的折线图到复杂的三维图表,以及定制图形的各个方面。以下是Matplotlib的一些重要特点和常见用法:

    Matplotlib 的特点:

    1. 灵活性:Matplotlib允许用户高度定制图形的外观和样式,以满足各种需求。

    2. 广泛的图形类型:Matplotlib支持绘制各种类型的图表,包括线图、散点图、直方图、饼图、热图、等高线图、3D图表等。

    3. 嵌入性:Matplotlib可以轻松嵌入到各种应用程序和工具中,包括Jupyter Notebook、Web应用程序、GUI应用程序等。

    4. 跨平台:Matplotlib支持多个操作系统,包括Windows、Linux和macOS。

    5. 丰富的文档:Matplotlib拥有丰富的文档和示例库,以帮助用户学习和使用该库。

    Matplotlib 的常见用法:

    以下是一些Matplotlib的常见用法,包括示例代码:

    1. import matplotlib.pyplot as plt
    2. x = [1, 2, 3, 4, 5]
    3. y = [10, 14, 8, 18, 12]
    4. plt.plot(x, y)
    5. plt.xlabel("X-axis")
    6. plt.ylabel("Y-axis")
    7. plt.title("Line Plot")
    8. plt.show()

     

    1. plt.scatter(x, y)
    2. plt.xlabel("X-axis")
    3. plt.ylabel("Y-axis")
    4. plt.title("Scatter Plot")
    5. plt.show()
    1. data = [10, 14, 8, 18, 12, 15, 9, 13, 11, 16]
    2. plt.hist(data, bins=5, edgecolor='black')
    3. plt.xlabel("Value")
    4. plt.ylabel("Frequency")
    5. plt.title("Histogram")
    6. plt.show()
    1. labels = ['A', 'B', 'C', 'D']
    2. sizes = [15, 30, 45, 10]
    3. plt.pie(sizes, labels=labels, autopct='%1.1f%%')
    4. plt.title("Pie Chart")
    5. plt.show()
    1. import numpy as np
    2. data = np.random.rand(5, 5)
    3. plt.imshow(data, cmap='viridis')
    4. plt.colorbar()
    5. plt.title("Heatmap")
    6. plt.show()

    自定义图形样式:Matplotlib允许你自定义图形的各个方面,包括线型、标记、颜色、标签、图例等。例如 

    1. plt.plot(x, y, linestyle='--', marker='o', color='green', label='Data')
    2. plt.legend()

    子图(Subplots)是Matplotlib中的一种功能,允许你在同一个图形窗口中创建多个子图,每个子图可以包含不同的图表或数据可视化。子图是一种有助于比较不同数据、创建复杂布局和可视化多个相关图的强大工具。

    以下是关于如何使用子图的示例:

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 创建一个新的图形,并分成2x2的子图区域
    4. # 参数(2, 2, 1) 表示创建一个2x2的子图区域,并选择第1个子图(从左上角开始数)
    5. plt.figure(figsize=(10, 6)) # 设置图形的大小
    6. # 子图1 - 折线图
    7. plt.subplot(2, 2, 1)
    8. x = np.arange(0, 5, 0.1)
    9. y = np.sin(x)
    10. plt.plot(x, y)
    11. plt.title("Subplot 1: Sine Wave")
    12. # 子图2 - 散点图
    13. plt.subplot(2, 2, 2)
    14. x = np.random.rand(50)
    15. y = np.random.rand(50)
    16. plt.scatter(x, y, color='red', marker='o')
    17. plt.title("Subplot 2: Scatter Plot")
    18. # 子图3 - 直方图
    19. plt.subplot(2, 2, 3)
    20. data = np.random.randn(1000)
    21. plt.hist(data, bins=20, color='green', alpha=0.7)
    22. plt.title("Subplot 3: Histogram")
    23. # 子图4 - 饼图
    24. plt.subplot(2, 2, 4)
    25. labels = 'A', 'B', 'C', 'D'
    26. sizes = [15, 30, 45, 10]
    27. plt.pie(sizes, labels=labels, autopct='%1.1f%%', colors=['yellow', 'lightblue', 'lightgreen', 'orange'])
    28. plt.title("Subplot 4: Pie Chart")
    29. # 调整子图之间的间距
    30. plt.tight_layout()
    31. # 显示图形
    32. plt.show()

     

    在这个示例中,我们首先创建了一个2x2的子图区域,然后使用subplot函数选择不同的子图。每个子图包含不同类型的图表(折线图、散点图、直方图和饼图),并分别设置了标题。最后,我们使用tight_layout函数来调整子图之间的间距,以确保它们在图形中良好排列。

    使用子图,你可以在一个图形中呈现多个相关的图表,这对于数据分析和可视化来说非常有用。根据需要,你可以添加更多子图,并定制每个子图的内容和样式。

    共享轴是Matplotlib中一个有用的功能,它允许在不同的子图中共享相同的坐标轴,以便更容易比较不同数据集的图表。你可以使用plt.subplots()函数的sharexsharey参数来实现共享x轴和y轴。 

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 创建一个新的图形,并分成2x1的子图区域
    4. fig, (ax1, ax2) = plt.subplots(2, 1, sharex=True, figsize=(8, 6))
    5. # 子图1 - 折线图
    6. x1 = np.linspace(0, 10, 100)
    7. y1 = np.sin(x1)
    8. ax1.plot(x1, y1)
    9. ax1.set_title("Subplot 1: Sine Wave")
    10. # 子图2 - 散点图
    11. x2 = np.random.rand(50)
    12. y2 = np.random.rand(50)
    13. ax2.scatter(x2, y2, color='red', marker='o')
    14. ax2.set_title("Subplot 2: Scatter Plot")
    15. # 共享x轴的标签
    16. plt.xlabel("X-axis")
    17. # 调整子图之间的间距
    18. plt.tight_layout()
    19. # 显示图形
    20. plt.show()

     axes是一个常用于Matplotlib中的对象,它代表了一个坐标轴,允许你在一个图形中绘制图表。axes对象通常是通过plt.subplots()plt.subplot()创建的,它们可以用来在子图中添加数据可视化元素,如折线图、散点图、直方图等。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. # 创建一个新的图形
    4. fig = plt.figure(figsize=(10, 6))
    5. # 创建第一个子图
    6. ax1 = fig.add_subplot(2, 2, 1)
    7. x1 = np.linspace(0, 10, 100)
    8. y1 = np.sin(x1)
    9. ax1.plot(x1, y1)
    10. ax1.set_title("Subplot 1: Sine Wave")
    11. ax1.set_xlabel("X-axis")
    12. ax1.set_ylabel("Y-axis")
    13. # 创建第二个子图
    14. ax2 = fig.add_subplot(2, 2, 2)
    15. x2 = np.random.rand(50)
    16. y2 = np.random.rand(50)
    17. ax2.scatter(x2, y2, color='red', marker='o')
    18. ax2.set_title("Subplot 2: Scatter Plot")
    19. ax2.set_xlabel("X-axis")
    20. ax2.set_ylabel("Y-axis")
    21. # 创建第三个子图
    22. ax3 = fig.add_subplot(2, 2, 3)
    23. data = np.random.randn(1000)
    24. ax3.hist(data, bins=20, color='green', alpha=0.7)
    25. ax3.set_title("Subplot 3: Histogram")
    26. ax3.set_xlabel("X-axis")
    27. ax3.set_ylabel("Frequency")
    28. # 创建第四个子图
    29. ax4 = fig.add_subplot(2, 2, 4)
    30. labels = 'A', 'B', 'C', 'D'
    31. sizes = [15, 30, 45, 10]
    32. ax4.pie(sizes, labels=labels, autopct='%1.1f%%', colors=['yellow', 'lightblue', 'lightgreen', 'orange'])
    33. ax4.set_title("Subplot 4: Pie Chart")
    34. # 调整子图之间的间距
    35. plt.tight_layout()
    36. # 显示图形
    37. plt.show()

  • 相关阅读:
    HTML静态网页作业——电影介绍-你的名字 5页 无js 带音乐
    [东华杯2021] ezgadget
    【安卓学习之常见问题】初始化Spinner、CheckBox和SeekBar不触发事件
    Nginx
    【日更】 基本算法_冒泡排序
    MVCC及实现原理
    leetcode:1203. 项目管理【双topo:组间topo + 组内topo】
    vmware-ubuntu使用问题记录
    .Net 对象生命周期由浅入深2(GC)
    【VUE.JS】安装部署篇:验证开发环境:NODE+Express+VUE+WEBPACK
  • 原文地址:https://blog.csdn.net/book_dw5189/article/details/133256945