函数公式网 高中函数 Python使用Matplotlib绘图详解

Python使用Matplotlib绘图详解

Matplotlib是Python中一个非常好用的模块,使用matplotlib可以绘制各种图标。 包括折线图、条形图、饼图、雷达图等。Matplotlib是在MATLAB的基础上实现的。 要在 Python 中使用 Matplotlib,我们需要安装它。 语句如下:

pip install matplotlib

下面用Matplotlib实现一个简单的折线图:

将 numpy 导入为 np
将 matplotlib.pyplot 导入为 plt
# 准备X轴的数据
x = np.linspace(0, 10, 10)
# 准备y轴的数据
y = x**2
# 获取折线图
plt.plot(x, y)
# 显示折线图
plt.show()

在上面的代码中我们使用了 NumPy 和 matplotlib.pyplot 库。 其中,NumPy是一个数学运算的库,我们在安装Matplotlib时会安装它。 而pyplot是Matplotlib的一个子库,绘图操作主要在里面。

绘制图表时,我们需要先准备x轴和y轴的数据。 然后调用plt.plot函数绘制图表,最后调用plt.show函数显示图表。 下面是我们绘制的图表:

但是上面的图表过于单调,无法从中得到准确的信息,所以我们需要丰富图表。

图中提供了一个函数,可以添加标题、x轴和y轴信息。 让我们使用第一节中的代码进行扩展:

将 numpy 导入为 np
将 matplotlib.pyplot 导入为 plt
x = np.linspace(0, 10, 10)
y = x**2
plt.plot(x, y)
# 添加标题
铂。 标题(“y = x^2”)
# 添加关于x轴的信息
铂。 xlabel("x")
# 添加y轴信息
plt.ylabel("y")
# 保存图片
plt.savefig('1.jpg')
plt.show()

调用plt.plot函数后,我们又调用了三个函数,分别是title、xlabel、ylabel。 这与我们的标题、x 轴和 y 轴完全对应。 这样,我们的图就更容易理解了。 下面是画的图:

从图中可以看出,是y = x^2的函数图像

有了一些提示信息,我们就可以考虑美化一下图表了。

丰富的样式

我们在之前的基础上继续修改:

import numpy as np
将 matplotlib.pyplot 导入为 plt
x = np.linspace(0, 10, 10)
y = x**2
# 使用背景
铂。 风格。 使用('ggplot')
# 丰富的样式
plt.plot(x, y, c='r', marker='o', ls='-', )
铂。 标题(“y = x^2”)
铂。 xlabel("x")
plt.ylabel("y")
plt.savefig('1.jpg')
plt.show()

我们修改了上面的两部分,首先我们在绘制图表之前调用了:

plt.style。 use('ggplot')

这个操作是使用Matplotlib自带的样式,我们可以通过:

plt.style.available

code >

查看可用样式。

第二部分是在绘制图表的时候添加几个参数,它们的含义如下:

c color
标记点样式
ls Line Style

最终绘制的图表如下:

可以看到样式变化很大。 当然,我们的Matplotlib也可以绘制其他图形。

绘制散点图

散点图的绘制和折线图很像,直接看代码:

import numpy 作为 np
将 matplotlib.pyplot 导入为 plt
x = np.linspace(0, 10, 10)
y = x**2
铂。 风格。 使用('ggplot')
# 绘制散点图
plt.scatter(x, y, c='r', 标记='o', ls='-', )
铂。 标题(“y = x^2”)
铂。 xlabel("x")
plt.ylabel("y")
plt.savefig('1.jpg')
plt.show()

可以看到我们的代码只做了很简单的修改。 我们把原来画折线图的函数plt.plot换成了plt.scatter。 剩下的代码直接copy过来,这是我们散点图的绘制,先看一下绘制出来的图:

可以看到散点图绘制正确。 我们可以尝试绘制其他样式的散点图:

import numpy as np
将 matplotlib.pyplot 导入为 plt

x = np.linspace(0, 10, 10)

y = x**2

铂。 风格。 使用('ggplot')

plt.scatter(x, y, c='b', marker='*')

铂。 标题(“y = x^2”)

铂。 xlabel("x")

plt.ylabel("y")

plt.savefig('1.jpg')

plt.show()

上面我调整了一个标记颜色和点样式,绘制的图表如下:

绘制饼图和条形图

h1>

除了以上两种,Matplotlib还可以绘制饼图和统计图表。 它们也很容易绘制:

import numpy as np
将 matplotlib.pyplot 导入为 plt

x = np.linspace(0, 10, 10)

y = [10, 3, 4, 7, 9, 3, 11, 23, 3, 17]

plt.rcParams['font.sans-serif'] = ['SimHei']

铂。 风格。 使用('ggplot')

plt.bar(x, y, color='b', tick_label=['01', '02', '03', '04', '05', '06', '07', '08', ' 09', '10'])

plt.title("一张测试图表")

plt.xlabel("年份")

plt.ylabel("y 值")

plt.savefig('1.jpg')

plt.show()

这里我们添加了一些内容,我们单独来看一下。 首先第一个是:

plt.rcParams['font.sans-serif'] = ['SimHei']

函数 这段代码的作用是让我们的图表显示汉字。 默认情况下,我们显示汉字时会出现乱码。

第二部分,我们把绘制图表的函数换成了plt.bar,参数也变了,意思如下:

color: 颜色
tick_label:x轴的标签

后面的内容和前面一样,下面是我们图表的效果图:

有中文标题 ,我们可以更方便的表示图形。

但是,有时候我们可能一张图片中包含两组数据。 这时候我们可以通过图例来区分:

import numpy as np
将 matplotlib.pyplot 导入为 plt

x = np.arange(10)

y1 = [10, 3, 4, 7, 9, 3, 11, 23, 3, 17]
y2 = [3, 4, 7, 9, 12, 16, 16, 17, 23, 17]

plt.rcParams['font.sans-serif'] = ['SimHei']

铂。 风格。 使用('ggplot')

bar_width = 0.35
tick_label = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10']

plt.bar(x, y1, bar_width, color='b', label='data1')
plt.bar(x bar_width, y2, bar_width, color='r', label='data2')

铂。 传奇()

plt.xticks(x bar_width/2, tick_label)

plt.title("一张测试图表")

plt.xlabel("年份")

plt.ylabel("y 值")

plt.savefig('1.jpg')

plt.show()

这次我们绘制了两个条形图。 为了不让它们重叠,我们在x轴上加了一个bar_width。 并为每个条形图添加了一个label参数,这个参数就是图例中会显示的内容。 然后我们就可以通过调用图例函数给图片添加图例了,效果图如下:

左上角显示的是我们的图例信息。

接下来我们看一下饼图的绘制:

import matplotlib.pyplot as plt
数据 = [0.2, 0.1, 0.05, 0.25, 0.4]
颜色 = ['#ee0000', '#0000ee', '#777777', '#00ee00', '#eeee00']
种类 = ['data1', 'data2', 'data3', 'data4', 'data5']
plt.rcParams['font.sans-serif'] = ['SimHei']
铂。 风格。 使用('ggplot')

plt.pie(数据,标签=种类,颜色=颜色)

plt.title("一张测试图表")

plt.xlabel("年份")

plt.ylabel("y 值")

plt.savefig('1.jpg')

plt.show()

这里也需要修改plt的绘图功能,这次用到的是饼图功能。 不同的图形需要不同的参数。 这次我们需要的参数是:

x : data
labels :每个数据的标签
colors:每条数据显示的颜色试一试,本次Chat就这些了。

作者:ZackSock链接:https://juejin.cn/post/7063084556693274661

本文来自网络,不代表函数公式网立场,转载请注明出处:https://www.cyhsb.com/gzhs/1351.html

OpenCV-python的绘图函数

R语言数据分析——三维散点图

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据