博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

二、Python开发---38、matplotlib(1)

Posted on 2020-03-09 23:16  兰智杰  阅读(147)  评论(0编辑  收藏  举报

Matplotlib概述

  Matplotlib是一个Python的 2D绘图库,通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等

  通过学习Matplotlib,可让数据可视化,更直观的真实给用户,使数据更加客观、更具有说服力,Matplotlib是Python的库,又是开发中常用的库

  %matplotlib tk(%matplotlib qt5) 在GUI中显示,%matplotlib inline 在行内显示,内嵌显示

Figure和Subplot

  Figure:面板(图),matplotlib中的所有图像都是位于figure对象中,一个图像只能有一个figure对象

  Subplot:子图,figure对象下创建一个或多个subplot对象(即axes)用于绘制图像

绘制基础

  1、在使用Matplotlib绘制图形时,其中有两个最为常用的场景,一个是画点,一个是画线

  

  2、数据可视化呈现的最基础图形就是:柱状图、水平条形图、折线图等;在python的matplotlib库中分别可用barbarhplot函数来构建它们,再使用xticks与yticks(设置坐标轴刻度)、xlabel与ylabel(设置坐标轴标签)、title(标题)、legend(图例)、xlim与ylim(设置坐标轴数据范围)、grid(设置网格线)等命令来装饰图形

  plt.axis([xmin, xmax, ymin, ymax])里的axis()命令给定了坐标范围

  xlim(xmin, xmax)ylim(ymin, ymax)来调整x,y坐标范围

  3、头部引包

import numpy as np
import matplotlib.pyplot as plt
# %matplotlib tk

直线

  plt.plot(x,y)

  

#将(0,1)点和(2,4)连起来
import matplotlib.pyplot as plt
#%matplotlib tk
plt.plot([0,2],[1,4])
plt.savefig('直线.jpg')
plt.show()

折线

  plt.plot(x,y)

  

import matplotlib.pyplot as plt
x=[1,2,3,4,5]
squares=[1,4,9,16,25]
plt.plot(x,squares)         #一一对应
plt.savefig('折线.jpg')
plt.show()

设置标签文字和线条粗细

  

# 设置标签文字和线条粗细
import matplotlib.pyplot as plt
datas=[1,2,3,4,5]
squares=[1,4,9,16,25]
plt.plot(datas,squares,linewidth=5) #设置线条宽度
# 设置图标标题,并在坐标轴上添加标签
plt.title('Numbers',fontsize=24)
plt.xlabel('datas',fontsize=14)
plt.ylabel('squares',fontsize=14)
plt.savefig('设置标签文字和线条粗细.jpg')
plt.show()

 

解决标签、标题中的中文问题

  解决中文问题:plt.rcParams[‘font.sans-serif’] = [‘SimHei’]

  解决符号问题:plt.rcParams[‘font.sans-serif’] = [‘SimSong’]

  

#设置中文乱码问题
import matplotlib.pyplot as plt
datas=[1,2,3,4,5]
squares=[1,4,9,16,25]
plt.plot(datas,squares,linewidth=5) #设置线条宽度
plt.rcParams['font.sans-serif'] = ['SimHei']
#设置图标标题,并在坐标轴上添加标签
plt.title('标题设置',fontsize=24)
plt.xlabel('x轴',fontsize=14)
plt.ylabel('y轴',fontsize=14)
plt.savefig('解决中文问题.jpg')
plt.show()

一元二次方程的曲线y=x^2

  

#绘制一元二次曲线
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimSong']
#200个点的x坐标
x=range(-100,100)
#生成y点的坐标
y=[i**2 for i in x ]
plt.plot(x,y)
plt.savefig('一元二次.jpg') #如果直接写成 plt.savefig('一元二次') 会生成一元二次.png
plt.show()

 

正弦、余弦函数

 

  

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimSong']
x = np.arange(-3,3,0.1)
y1=np.sin(x)
y2=np.cos(x)
# 将图像显示在figure画板上
plt.figure()
plt.plot(x,y1)
plt.savefig('正弦函数.jpg')
plt.figure()
plt.plot(x,y2)
plt.savefig('余弦函数.jpg')
plt.show()

子图

  

import matplotlib.pyplot as plt
x1=[1,2,3]
x2=[2,4,5]
y1=[2,3,4]
y2=[5,6,29]
# 解决乱码
plt.rcParams['font.sans-serif']=['SimHei']
plt.subplot(221)                             #等价于plt.subplot(2,2,1)  2行2列第1个
plt.plot(x1,y1,'r--')                        #里面三个参数
plt.title('x1y1',fontsize=15,color='blue')  #title设置标题
plt.xlabel('x轴',fontsize=10)                #设置x轴名称
plt.ylabel('y轴',fontsize=10)                #设置y轴名称
plt.subplot(222)                             #2行2列第3个
plt.plot(x2,y2,'r--')
plt.title('x2y2',fontsize=15,color='b')     #b==blue  简称
plt.savefig('子图.jpg')
plt.show()