Matplotlib基础

**annotate()复杂标注
annotate()提供了最为复杂,功能也最为强大的标注功能。
plt.annotate(s, xy, *args, **kwargs),参数说明:
(1)s为需要提供的注释信息,字符串型。
(2)xy,(x,y)为注释箭头开始坐标。
(3)*args,里的xytext=(x,y),为注释文本左边坐标。
(4)**kwargs,主要指arrowprops参数,字典类型,包括如下键值对:
width= 箭头宽度(以点为单位)、frac =箭头头部所占据的比例、headwidth= 箭头的底部的宽度(以点为单位)、shrink =从箭尾到标注内容开始两端空隙长度、kwargs( matplotlib.patches.Polygon的任何键值对,如facecolor=’r’)

import matplotlib.pyplot as plt
import numpy as np
#带Tom max内容的品红箭头注释
#m代表品红
plt.annotate('Tom max',xy=(4.3,1),xytext=(4.6,0.25),arrowprops=dict(facecolor='m',shrink=0.01),fontsize=10)  
x = np.arange(0,5,0.02)   #x轴数间隔为0.02
plt.plot(x,np.sin(x*np.pi*2),color='g',marker='+',linestyle='-.')  #b为蓝色,D为实心菱形图标,-.为线点
plt.show()

在这里插入图片描述
若需要显示中文,则需要设置fontproperties(字体属性)。这里提供四种设置方式。
1、指定字库路径

x = range(2,26,2)      #生成时间
y = [random.randint(10,30) for i in x]  #生成温度
#matplotlib中默认是不支持中文字体,我们可以自定义,windows电脑:查看系统字体:C:\Windows\Fonts在此目录下
#设置字体,在需要设置中文显示的方法中加入fontProperties参数指定用户设置的字体变量即可
my_font = font_manager.FontProperties(fname=r"C:/Windows/Fonts/SIMLI.TTF",size=18)
plt.figure(figsize=(30,18),dpi=100)
x_ticks_labels = map(lambda i:str(i)+"点",x)
plt.xticks(x,x_ticks_labels,fontProperties=my_font,rotation=45)             #设置x轴上的刻度以及显示内容
y_ticks_labels = map(lambda i:str(i)+"℃",      #这里为了使刻度均匀,并且显示内容相匹配
                     range(min(y),max(y)+1))
plt.yticks(range(min(y),max(y)+1),y_ticks_labels,fontProperties=my_font,rotation=45) #设置y轴上的刻度以及
#显示内容这里如果,刻度还传入y参数(y是一个10到30之间的随机整数,这样会造成刻度不均匀)
plt.ylabel("温度/℃",fontProperties=my_font,size=24)         #设置y轴标签(具体来说就是y轴的大致内容)
plt.xlabel("时间/小时",fontProperties=my_font,size=24)          #设置x轴标签
plt.title("一天中温度随时间的变化规律",fontProperties=my_font,size=30)   #设置标题
plt.plot(x,y,marker="o",color="blue",linewidth=2)      #marker设置折点
plt.grid()         #设置网格
plt.show()

在这里插入图片描述
移动刻度线
目前为止,所绘制的绘图区域都是左边、底部位置的x、y坐标刻度线。这里想把x、y刻度线移到(0,0)为中心的数据区域。x、y坐标刻度线由spines()方法进行管理,它提供(top、bottom、left、right)四个刻度线及对应位置的设置功能。要把左、底刻度线移动到数据的中心区域,需要把右、顶两个刻度线通过设置颜色为none隐掉。

x = np.linspace(-np.pi,np.pi,200)    #提供x轴坐标值
c,s = np.cos(x),np.sin(x)   #提供y轴坐标值
plt.plot(x,c)         #绘制 cos函数曲线
plt.plot(x,s)         #绘制 sin函数曲线
ax = plt.gca()   #获取当前axes实例,gca英文全称get current axes
ax.spines['right'].set_color('none')   #用spines设置颜色值为none,把右刻度线隐藏
ax.spines['top'].set_color('none')   #用spines设置颜色值为none,把顶刻度线隐藏掉
ax.xaxis.set_ticks_position('bottom')   #把x轴刻度线位置设置为bottom
ax.spines['bottom'].set_position(('data',0))  #把底部的刻度线设置到数据区域的0位置
ax.yaxis.set_ticks_position('left')   #把y轴刻度线位置设置为left
ax.spines['left'].set_position(('data',0))  #把左部的刻度线设置到数据区域的0位置
plt.show()

在这里插入图片描述
**在一个画板(Figure)上显示多绘图子界面也是允许的,主要通过subplot()函数来实现。
plt.subplot(*args, **kwargs),参数说明:
(1)*args,指定(nrows,ncols,index),提供subplot在Figure上的位置,nrows指定行数,ncols指定列数,index指定一张subplot的具体顺序位置。如(2,2,1)表示在Figure上指定2行、2列的绘图区域(可以依次显示4个绘图子界面),并在第一顺序位置显示一张绘图子界面。上述三个数值都不能大于10。
(2)kwargs,接受键值对参数。如facecolor='r’设置绘图区域的背景颜色,title='cos line’指定绘图区域的标题,projection='polar’指定极坐标,frameon=False设置绘图边框。

x1 = np.arange(0,5,0.1)
x2 = np.arange(0,5,0.02)
plt.figure(1)
plt.subplot(221,facecolor='m')    #指定第一张子图,并加背景色
plt.plot(x1,x1,'bo','k')   #绘制蓝色圆点图标的斜线
plt.subplot(222,title='cos line')  #指定第二张子图,并添加标题
plt.plot(x2,np.cos(np.pi*2*x2),'r--') #绘制红色cos虚线
plt.subplot(2,2,3,projection='polar')  #加极坐标,(2,2,3) 223指定坐标是等价的
plt.plot(x2,x2,'g--')   #第三绘图区域极坐标下绘制绿色虚线
plt.subplot(224,frameon=False)  #指定第四绘图区域,并关掉绘图边框
plt.plot(x2,np.sin(2*np.pi*x2),'g--')  #绘制去掉绘图边框,绿色的sin虚线
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值