【Python】matplotlib库 画图
程序员文章站
2024-01-15 19:18:16
...
【Python】matplotlib库 画图
导入
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')
推荐阅读
-
[Python]RFM用户分类模型, 加matplotlib可视化数据--在线教育行业分析案例连载1
-
Python 强大的信号库 blinker 入门详细教程
-
Python将txt文件输入到MySQL数据库中
-
无法找到python第三方库的处理方法
-
code Python version and matplotlib version
-
matplotlib plot python rgb2gry 显示灰度图像
-
Python图像处理工具——PIL、opencv、matplotlib
-
荐 自动化 selenium 库安装使用Python/Java
-
python 画图显示中文
-
python画图显示中文