美文网首页
python3 的 matplotlib绘图库的使用

python3 的 matplotlib绘图库的使用

作者: V7hinc | 来源:发表于2020-09-04 11:08 被阅读0次

目录

**1.绘制第一幅图表**

**(1)figure函数,创建图表**

**(2)subplot函数,创建子图**

**(3)在多个图表中创建子图**

**(4)plot()函数,画函数图像**

**(5)sca()函数,选择子图**

**(6)在 一张表中画多个曲线**

**2.直方图**

**3.散点图**

**4.饼图**

**5.图表的注释与标识**

**6.加载txt文件并绘图**

1.绘制第一幅图表

(1)figure()函数,创建图表

import matplotlib.pyplot as plt
plt.figure(1)   #创建图表1
plt.figure(2)      #创建图表2
plt.show()          #显示所有图表

执行效果:

image

(2)subplot() 创建子图

import matplotlib.pyplot as plt
plt.figure(1)   #创建图表1
plt.subplot(223)        #创建2*2的图表矩阵,绘制的子图为矩阵中的3序号
plt.show()          #显示所有图表

执行结果:

image

子图的序号排序顺序是:从左到右,然后从上到下,逐次增加1
例如:subplot(2,2,1) 就是子图在上图的序号1的位置。

有如:显示四个子图

import matplotlib.pyplot as plt
plt.figure(1,dpi=50)   #创建图表1,dpi为设置图表的大小,默认dpi=80
plt.subplot(221)        
plt.subplot(222)
plt.subplot(223)
plt.subplot(224)
plt.show()          #显示所有图表

执行结果:

image

(3)在多个表中创建子图

import matplotlib.pyplot as plt
plt.figure(1,dpi=50)   #创建图表1
plt.subplot(111)        #在图表1中创建子图
plt.figure(2,dpi=50)    #创建图表2
plt.subplot(221)        #在图表2中创建子图
plt.show()          #显示所有图表

执行结果:

image

(4)plot()函数,画函数图像

plot(x,y) 的 x 参数表示x值,y参数表示y值

import numpy as np
import matplotlib.pyplot as plt
 
plt.figure(1,dpi=50)
x= np.linspace(-np.pi,np.pi,100) # x轴的定义域为 -3.14~3.14,中间间隔100个元素
plt.plot(x,np.sin(x))
plt.show()

执行效果:


image

(5)sca()函数,选择子图

import numpy as np
import matplotlib.pyplot as plt
 
plt.figure(1,dpi=50)
ax1 = plt.subplot(211)      #创建子图 ax1
ax2 = plt.subplot(212)      #创建子图 ax2
 
x = np.linspace(0,10,100)   # x轴定义域
 
plt.sca(ax1)                #选择子图ax1
plt.plot(x,np.exp(x))       #在子图ax1 中绘制函数 exp(x)
 
plt.sca(ax2)                #选择子图ax2
plt.plot(x,np.sin(x))       #在子图ax2 中绘制函数 sin(x)
 
plt.show()                  #展示所有图表

执行效果:

image

(6)在一张表中画多个曲线

import numpy as np
import matplotlib.pylab as plt
 
x = np.linspace(-np.pi*2,np.pi*2,100)   #定义域为: -2pi 到 2pi
plt.figure(1,dpi=50)                    #创建图表1
 
for i in range(1,5):                   #画四条线
    plt.plot(x,np.sin(x/i))             
 
plt.show()

执行效果:

image

2.直方图

使用 hist()函数:

import numpy as np
import matplotlib.pyplot as plt
 
plt.figure(1,dpi=50) # 创建图表1
data = [1,1,1,2,2,2,3,3,4,5,5,6,4]
plt.hist(data)      #只要传入数据,直方图就会统计数据出现的次数
 
plt.show()

执行效果:

image

3.散点图

散点图用 scatter(x,y) 绘制,x参数传入x轴的坐标,y参数传入 y 轴坐标

import numpy as np  
import matplotlib.pyplot as plt  
#产生测试数据  
x = np.arange(1,10)  
y = x  
fig = plt.figure()
plt.scatter(x,y,c = 'r',marker = 'o')  #c = 'r'表示散点的颜色为红色,marker 表示指定三点多形状为圆形
#显示所画的图  
plt.show() 

执行效果:

image

4.饼图

通过 pie()函数

import numpy as np  
import matplotlib.pyplot as plt
data = [100,500,300]                    #饼图中的数据
fig = plt.figure(dpi=80)
plt.pie(data,                          # 每个饼块的实际数据,如果大于1,会进行归一化,计算percentage
        explode=[0.0,0.0,0.1],               # 每个饼块离中心的距离
        colors=['y','r','g'],               # 每个饼块的颜色,黄红绿
        labels=['A part','B part','C part'], # 每个饼块的标签
        labeldistance=1.2,                   # 每个饼块标签到中心的距离
        autopct='%1.1f%%',                  # 百分比的显示格式
        pctdistance=0.4,                     # 百分比到中心的距离
        shadow=True,                         # 每个饼块是否显示阴影
        startangle=0,                        # 默认从x轴正半轴逆时针起
        radius=1                           # 饼块的半径
        )
plt.show()

执行效果:

image

5.图表的注释与标识

import numpy as np  
import matplotlib.pyplot as plt
fig = plt.figure(dpi=80)
x = np.linspace(0,10,100)
plt.plot(x,np.sin(x),label="sin(x)")    #先设置一个label用于显示图例
plt.xlabel("X axe")     #设置X轴的文字
plt.ylabel("Y axe")     #设置Y轴的文字
plt.title("sin(x) function")    #设置图的标题
plt.legend()                        #显示图例。
plt.show()

执行效果:

image

6.加载txt文件并绘图

使用: numpy的 loadtxt()函数

import numpy as np  
import matplotlib.pyplot as plt
data = np.loadtxt('1.txt',delimiter=',')    #加载数据文件1.txt,数据间的分隔符为逗号','
plt.plot(data[:,0],data[:,1],'ro')          #ro表示每个数据在图表上打印的是红色的圆点
plt.show()

执行效果:

image

附上1.txt文件:

0,0
1,1
2,4
3,9
4,16
5,25
6,36
7,49
8,64
9,81
0,0
1,1
2,4
3,9
4,16
5,25
6,36
7,49
8,64
9,81
0,0

7.中文显示出错

C:\Users\admin\AppData\Local\Programs\Python\Python38\lib\site-packages\matplotlib\backends\backend_agg.py:201: RuntimeWarning: Glyph 20116 missing from current font.
  font.set_text(s, 0, flags=flags)
C:\Users\admin\AppData\Local\Programs\Python\Python38\lib\site-packages\matplotlib\backends\backend_agg.py:201: RuntimeWarning: Glyph 20845 missing from current font.
  font.set_text(s, 0, flags=flags)
C:\Users\admin\AppData\Local\Programs\Python\Python38\lib\site-packages\matplotlib\backends\backend_agg.py:201: RuntimeWarning: Glyph 19971 missing from current font.
  font.set_text(s, 0, flags=flags)

这是错误提示,只需要补全下面代码就行(缺哪个补哪个)

from matplotlib import font_manager as fm, rcParams
import matplotlib as plt

plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签
plt.rcParams['axes.unicode_minus']=False   #这两行需要手动设置

示例代码

import matplotlib.pyplot as plt

# 在一张表中画多个折线
plt.figure(1, dpi=80)  # 创建图表1
plt.rcParams['font.sans-serif']=['SimHei'] #显示中文标签

plt.title("收支统计")    #设置图的标题
plt.xlabel("月份")     #设置X轴的文字
plt.ylabel("收入(万元)")     #设置Y轴的文字
x=['一月','二月','三月','四月','五月','六月','七月']   # x轴数据
y1=[0,1,2,3,20,5,6]     # 线条一的y轴数据
y2=[10,23,43,3,2,9,12]  # 线条二的y轴数据
#在当前绘图对象进行绘图(两个参数是x,y轴的数据)
plt.plot(x,y1,label='收入')
plt.plot(x,y2,label='支出')
plt.legend()    #显示图例。
plt.show()      # 弹出图表
plt.savefig("test.png")  # 保存图像
image.png

转载自:https://blog.csdn.net/u014453898/article/details/73395522

相关文章

网友评论

      本文标题:python3 的 matplotlib绘图库的使用

      本文链接:https://www.haomeiwen.com/subject/bukzsktx.html