【Matplotlib】可视化图形基本操作

1.准备工作

∙ \bullet 需要的库:matplotlib库用来绘制图形,它的子库pyplot提供了与MATLAB类似的绘图API。numpy库用来处理数据。
∙ \bullet 引入(我们后面使用它的简略形式):

import matplotlib.pyplot as plt   #基本上只需要使用matplotlib的pyplot库
import numpy as np   #数据处理
%matplotlib inline  #确保图形显示

2.基本操作

2.1 创建绘图对象(figure)

在绘图前我们需要创建绘图对象,若直接调用plot函数,那么Matplotlib就会自动创建一个绘图对象。

基本格式 p l t . p l o t ( n u m = N o n e , f i g s i z e = N o n e , d p i = N o n e , f a c e c o l o e = N o d e , e d g e c o l o r = N o n e . . . ) plt.plot(num=None,figsize=None,dpi=None,facecoloe=Node,edgecolor=None...) plt.plot(num=None,figsize=None,dpi=None,facecoloe=Node,edgecolor=None...)

基本参数介绍

参数名称作用
num接收int或string,如果未提供该参数将默认生成,并且图形编号递增。
figsize接收元组,比如说 figsize=(5,5) 指定了绘图对象的宽度和高度,单位为英寸。
dpi接收int,表示分辨率,即每英寸多少个像素,默认值为80.
facecolor表示背景颜色
edgecolor表示边框颜色

2.2 绘制图表(plot)

函数格式
p l t . p l o t ( x , y , l a b e l , c o l o r , l i n e w i d t h , l i n e s t y l e ) plt.plot(x,y,label,color,linewidth,linestyle) plt.plot(x,y,label,color,linewidth,linestyle)

参数说明

函数参数参数作用
xx轴上的数值
yy轴上的数值
ld (linewidth)线条的粗细
ls(linestyle)线条的格式
c(color)线条颜色
maker线条上点的形状
makeredgecolor点的边框颜色
makersize点的大小
makerfacecolor点的填充颜色
label文本标签

linestyle(四种):
∙ \bullet ‘-’ 实线
∙ \bullet ‘- -’ 虚线
∙ \bullet '-.'点划线
∙ \bullet ':'实点线

首先我们得生成关于x和y的列表,然后才可以进行绘图。

简单直线的显示

∙ \bullet plt.plot(x,y) #就是构造关于x和y的这条直线
∙ \bullet plt.show() #就是显示这条直线

import matplotlib.pyplot as plt   
import numpy as np   
x = np.linspace(-3,3,50)  #x轴上从-3到3的50个点
y = 2*x+1  #函数关系式
plt.plot(x,y)
plt.show()

在这里插入图片描述


2.3 标签

参数说明

参数名称作用
plt.xlabel()x轴的名称,可以指定位置、颜色、字体大小等参数
plt.ylabel()y轴的名称,可以指定位置、颜色、字体大小等参数
plt.title()图表的标题,可以指定位置、颜色、字体大小等参数
plt.xlim()图形显示x轴的范围
plt.ylim()图形显示y轴的范围
plt.xticks()指定x轴刻度的数目与取值
plt.yticks()指定y轴刻度的数目与取值

实例

import matplotlib.pyplot as plt   #基本上只需要使用matplotlib的pyplot库
import numpy as np   #数据处理

x = np.linspace(-3,3,50)  #x轴上从-3到3的50个点
y1 = 2*x+1  #函数关系式
y2 = x**2

plt.figure(num=1)
plt.plot(x,y1)  #color表示颜色,linewidth表示宽度,linestyle表示线的类型
plt.plot(x,y2,color='red',linewidth=1.0,linestyle='--')

plt.xlim(-1,2) #设置x轴的范围
plt.ylim(-1,4) #设置y轴的范围
plt.xlabel('I am x') #设置x轴的名字
plt.ylabel('I am y') #设置y轴的名字


#具体的设置x轴\y轴的坐标值
new_ticks = np.linspace(-1,2,5)
plt.xticks(new_ticks) #可以使用固定距离的坐标
plt.yticks([-1,-0.5,1,1.5,2],[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$really\ good$']) #第一个列表放入位置,第二个列表放入名称与第一个列表一一对应
plt.show()

在这里插入图片描述


2.4 移动坐标轴

∙ \bullet spines表示边,一共有top、bottom、right、left
∙ \bullet 我们控制它的右边和上边消失,让下边和左边移动过来
∙ \bullet set_position中第一个参数在元组里,表示在数据的0位置

实例

#插入上边代码中即可运行
#gac='get current axis'
ax = plt.gca() #将上面的图片放入ax中
ax.spines['right'].set_color('none') #设置右边、上面top的边消失
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')  #将下面和左边的边设置为这个图面的x、y轴
ax.yaxis.set_ticks_position('left')
#设置边所在的坐标位置
ax.spines['bottom'].set_position(('data',0))  #参数axes显示所占百分比
ax.spines['left'].set_position(('data',0))
plt.show()

在这里插入图片描述


import matplotlib.pyplot as plt   
import numpy as np   
x = np.linspace(-1,1,10)  #x轴上从-1到1的10个点
y1 = 2*x+1  #函数关系式
y2 = x**2

plt.figure(num=1,figsize=(5,5))
plt.plot(x,y1)

plt.figure(num=2)
plt.plot(x,y2,color = 'red',linewidth = 1.0,linestyle = '--')

plt.show()

2.5 图例(legend)

参数说明

legend函数参数参数作用
handles一个列表,包含你想要的显示的图线返回值
labels一个列表,可以统一对图形图例进行名称定义
loc图例位置,默认为best

plt.rcParams[“font.sans-serif”] = [“SimHei”] #解决中文乱码问题
plt.rcParams[“axes.unicode_minus”] = False #使一些符号正常显示
plt.legend() #默认生成图例

实例
∙ \bullet 默认生成

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

x = np.linspace(-1,1,30)  #x轴上从-1到1的30个点
y1 = x**2
y2 = 2*x+1

plt.figure()
plt.rcParams["font.sans-serif"] = ["SimHei"]   #解决中文乱码问题
plt.rcParams["axes.unicode_minus"] = False   #使一些符号正常显示
l1, = plt.plot(x,y1,label="图形 y1 = x^2")
l2, = plt.plot(x,y2,label="图形 y2 = 2*x+1")
plt.legend() #默认生成

plt.show()

在这里插入图片描述

∙ \bullet 含参

#含参的legend
plt.legend(handles=[l1,l2],labels=['图线1','图线2'],loc='upper right')

在这里插入图片描述


2.6 保存图像

函数:可以指定图表的分辨率、边缘和颜色等参数

plt.savefig("E:/可视化.png")

结果
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

比奇堡咻飞兜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值