Python中Matplotlib的简单使用

 更新时间:2023年07月12日 08:46:18   作者:i阿极(考研版)  
这篇文章主要介绍了Python中Matplotlib的简单使用,Matplotlib是一个用于绘制数据可视化图形的Python库,支持绘制各种静态,动态,交互式的图表,它是数据科学和机器学习领域最流行的可视化库之一,需要的朋友可以参考下

1、Matplotlib介绍

Matplotlib是一个用于绘制数据可视化图形的Python库,支持绘制各种静态,动态,交互式的图表。它是数据科学和机器学习领域最流行的可视化库之一,因其简单易用和高度可定制性而备受欢迎。

Matplotlib可以绘制的图表类型包括折线图,散点图,直方图,饼图,等高线图,3D图等等。它还提供了丰富的绘图功能,可以添加注释、图例、文本、网格线等元素,支持自定义颜色、字体、样式等属性,同时也可以与其他Python库和工具,如NumPy、Pandas、Seaborn等进行结合使用。

Matplotlib最初由John D. Hunter在2003年创建,是一个开源项目,目前由社区共同维护和开发。它已被广泛应用于科学研究、数据分析、工程设计、教育教学等领域。

2、实验环境

Python 3.9

Anaconda

Jupyter Notebook

3、Matplotlib Pyplot操作

Matplotlib是Python中最流行的绘图库之一,可以用于创建各种类型的静态和动态图表。Matplotlib库由多个子库组成,其中pyplot子库是最常用的子库之一,它提供了类似于MATLAB的绘图界面,使得使用Matplotlib进行数据可视化变得更加简单。

3.1导入模块

在使用Pyplot之前,我们需要导入matplotlib库和pyplot模块:

import matplotlib.pyplot as plt

通常习惯将pyplot模块重命名为plt,以便更简洁地调用。

3.2绘制图

绘制图是Pyplot的一个常见功能。以下是绘制图常见函数:

  • plot():用于绘制线图和散点图
  • scatter():用于绘制散点图
  • bar():用于绘制垂直条形图和水平条形图
  • hist():用于绘制直方图
  • pie():用于绘制饼图
  • imshow():用于绘制图像
  • subplots():用于创建子图

绘制折线图,可以通过传递两个参数——x轴和y轴数据来绘制一个简单的折线图:

x = [1, 2, 3, 4, 5]
y = [10, 8, 6, 4, 2]
plt.plot(x, y)
plt.show()

在这里插入图片描述

3.3添加标题和标签并解决乱码问题

Pyplot还支持在图表中添加标题和标签,以提高可读性和易用性。

例如:

plt.plot(x, y)
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

在这里插入图片描述

发现添加标题和标签的时候,图表出现了乱码。

对于这种情况,可以使用以下两种方式解决:

  • 1、更改Matplotlib默认字体 可以使用matplotlib.rcParams来更改Matplotlib的默认字体。
plt.plot(x, y)
matplotlib.rcParams['font.family'] = 'SimHei'  # 将字体设置为中文黑体
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.show()

在这里插入图片描述

  • 2、指定字体 另一种方法是在绘图时直接指定字体。
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
my_font = fm.FontProperties(fname='C:/Windows/Fonts/SimHei.ttf')  # 加载中文字体
plt.plot([1, 2, 3, 4])
plt.title('示例', fontproperties=my_font)
plt.show()

3.4绘制多个子图

使用Pyplot,我们可以将多个子图组合在一起,形成一个复杂的图表。 我们可以通过plt.subplots()函数来创建一个包含多个子图的图表:

fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[0, 0].set_title('子图1')
axs[0, 1].scatter(x, y)
axs[0, 1].set_title('子图2')
axs[1, 0].bar(x, y)
axs[1, 0].set_title('子图3')
axs[1, 1].pie(y)
axs[1, 1].set_title('子图4')
plt.show()

在这里插入图片描述

我们使用plt.subplots()函数创建了一个2x2的子图网格,然后在每个子图上绘制了不同类型的图表,如折线图、散点图、柱状图和饼图。我们可以使用axs变量来引用每个子图,并使用set_title()函数来添加标题。

3.5保存图表

使用Matplotlib Pyplot绘制完图表后,我们可以使用plt.savefig()函数来保存图表为文件。该函数的参数可以指定保存的文件名和格式。

plt.plot(x, y)
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.savefig('C:\\Users\\XWJ\\Desktop\\daima\\line_chart.png')

在这里插入图片描述

我们将折线图保存为名为line_chart.png的PNG文件。在调用plt.savefig()函数时,必须在调用plt.show()函数之前调用,否则图表将不会被保存。

默认情况下,plt.savefig()函数将保存整个图表,包括边框和标签。如果想要仅保存绘制的图表内容,可以在调用plt.savefig()函数之前调用plt.tight_layout()函数,它将自动调整子图间的间距和位置,使其最大化图表的可视面积。

plt.plot(x, y)
plt.title('折线图示例')
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.tight_layout()
plt.savefig('C:\\Users\\XWJ\\Desktop\\daima\\line_chart.png')

到此这篇关于Python中Matplotlib的简单使用的文章就介绍到这了,更多相关Matplotlib的简单使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python查看文件大小和文件夹内容的方法

    python查看文件大小和文件夹内容的方法

    今天小编就为大家分享一篇python查看文件大小和文件夹内容的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Django获取model中的字段名和字段的verbose_name方式

    Django获取model中的字段名和字段的verbose_name方式

    这篇文章主要介绍了Django获取model中的字段名和字段的verbose_name方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • pip安装py_zipkin时提示的SSL问题对应

    pip安装py_zipkin时提示的SSL问题对应

    今天小编就为大家分享一篇关于pip安装py_zipkin时提示的SSL问题对应,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Python中sub()的用法说明

    Python中sub()的用法说明

    这篇文章主要介绍了Python中sub()的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Python技巧分享之groupby基础用法详解

    Python技巧分享之groupby基础用法详解

    python中groupby函数主要的作用是进行数据的分组以及分组后地组内运算!本文将通过一些示例和大家详细讲讲groupby的基础用法,需要的可以参考一下
    2022-10-10
  • python基础教程之分支、循环简单用法

    python基础教程之分支、循环简单用法

    这篇文章主要介绍了python基础教程之分支、循环简单用法,结合实例形式分析了Python分支及循环语句的简单使用方法,需要的朋友可以参考下
    2016-06-06
  • python3 cookbook中常遇问题解答

    python3 cookbook中常遇问题解答

    本文主要介绍了python3 cookbook中常遇问题解答,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python中time.sleep(0.001)是否真的只等待1毫秒

    Python中time.sleep(0.001)是否真的只等待1毫秒

    这篇文章主要介绍了Python中time.sleep(0.001)是否真的只等待1毫秒,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 浅谈pytorch中的nn.Sequential(*net[3: 5])是啥意思

    浅谈pytorch中的nn.Sequential(*net[3: 5])是啥意思

    这篇文章主要介绍了pytorch中的nn.Sequential(*net[3: 5])是啥意思,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Python中numpy模块常见用法demo实例小结

    Python中numpy模块常见用法demo实例小结

    这篇文章主要介绍了Python中numpy模块常见用法,结合实例形式总结分析了numpy常见的运算操作技巧与注意事项,需要的朋友可以参考下
    2019-03-03

最新评论