欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Python】matplotlib库 画图

程序员文章站 2024-01-15 19:18:16
...

导入

import matplotlib.pyplot as pyt
import matplotlib       			#导入这个库是为了定制坐标轴
import numpy as npy     			#数学库


pyt对象的属性设置,全局化的设置

基本设置

pyt.rcParams['font.sans-serif'] = ['SimHei']    	# 正常显示中文
pyt.rcParams['axes.unicode_minus'] = False     		# 正常显示坐标值负号
pyt.subplots_adjust(hspace=0.5)                 	# 子图行间距
pyt.grid(linestyle = '--')                      	#设置背景网格线为”---“
#加载汉字字体,计算机控制面板已安装的字体(楷体)
gbk = matplotlib.font_manager.FontProperties(fname = 'C:\Windows\Fonts\simkai.ttf')
pyt.title("螺旋曲线")           						#设置标题

#指示生成上述图例标注的方法,如果要指明字体就标注,否则一律黑体
pyt.legend(prop = gbk)
#一个即可,且必须要有,才可以把窗口show出来,一般放最后,生成完了再显示
pyt.show()


子对象figure,控制窗口

myfg  = pyt.figure()    					#绘图对象一个窗口
myfg = pyt.figure(figsize = (10, 3))    	#设置窗口的分辨率,宽高,英寸为单位,80像素/英寸
myfg.suptitle("this is some functions",font = 'gbk')     #主标题
myfg.patch.set_color("white")    			#patch属性中的set.color方法设置背景颜色
myaxs = myfg.add_axes([0.1,0.1,0.8,0.8])	#整个图像在画布中的“左底宽高”


子对象axes,控制画图

坐标系设置,该库是以坐标轴为主来画图

axs1 = myfg.add_subplot(312)    	#生成方法,位置设置,3*1的第二个
axs1.patch.set_color('lightblue')   #patch属性中的set.color方法设置背景颜色
axs1.set_xlim(-5,5)     			#坐标轴刻度设置,(下限,上限),对整个axs1对象设置

#手动设置主刻度,用MultipleLocator(r*npy.pi/6)表示以(πr/6)分隔刻度
myaxs.xaxis.set_major_locator(MultipleLocator(r*npy.pi/6))      
#设置上述对应文本,用自定义函数,FuncFormatter输入(x分割后的刻度值,pos刻度序号)两个值,
myaxs.xaxis.set_major_formatter(FuncFormatter(locator_text_transform))   
#副刻度设置方法,副刻度不设置文本就默认没有文本   
myaxs.xaxis.set_minor_locator(MultipleLocator(r*npy.pi/6/6))        
myaxs.xaxis.set_minor_formatter(FuncFormatter(locator_text_transform))

自定义函数例子,自定义函数的输出应该是一个数值

def locator_text_transform(x, pos):     
    p = npy.round(x/(npy.pi*r/6))
    q = 6
    if p % 2 == 0: p, q = p/2, q/2
    if p % 3 == 0: p, q = p/3, q/3
    if p == 0:
        return "0"
    if p == 1 and q == 1:
        return "$\pi$"
    if q == 1:
        return r"$%d\pi$" % p
    if p == 1:
        return r"$\frac{\pi}{%d}$" % q
    return r"$\frac{%d\pi}{%d}$" % (p,q)

画线\点操作

# 画线方法,u表示要编码
axs1.plot(x,npy.e**x,label = u'这条线的名字',color = 'r',linewidth = 1)   
#'g-.'(直接颜色加线条样式)和color位置不能调换,color可以改'g-.'
# 画在同一副图就用同一个坐标轴对象
axs1.plot(x,npy.cos(x),'g-.',label = u'另一条线的名字',linewidth = 1)      
#画点方法,(坐标x,y,大小)                       
axs1.scatter(1,1,s = 50)        
#标题设置,loc为对齐方向
axs1.set_title("指数" , fontsize = 'small' , loc = 'right')