Matplotlib 学习笔记

Matplotlib

Matplotlib 是Python2D绘图领域使用最广泛的套件。能导出多种格式的图片。

Matplotlib中文显示

Matplotlib默认是不支持中文的,如果出现中文会以方框代替。

但是经过测试国外字体中部分可以支持。

goodfont=[
 'Adobe Heiti Std',
 'Arial Unicode MS',
 'DengXian',
 'SimHei',
 'STKaiti',
 'STXihei',
]

使用fontproperties指定字体

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
zh_cn_font = matplotlib.font_manager.FontProperties(fname="F:\ProjectFiles\SimHei.ttf")
#第七行的作用是为了消除更换为unicode字体之后0、负数之类的显示异常。之后所有使用中文字体的地方只字符串都以u""的形式出现,并指定fontproperties属性为我们的指定的myfont就行了
matplotlib.rcParams['axes.unicode_minus'] = False
#matplotlib.rcParams['font.sans-serif'] = ['SimHei']
x = np.arange(0,9)
y = 2*x+1
plt.title(u"Matplotlib 标题",fontproperties = zh_cn_font)
plt.xlabel(u"x 轴:",fontproperties = zh_cn_font)
plt.ylabel(u"y 轴:",fontproperties = zh_cn_font)
plt.plot(x,y)
plt.show()

一劳永逸法

  1. 找到matplotlib 配置文件:
import matplotlib 
print(matplotlib.matplotlib_fname()) 
#我自己的输出结果如下:
#%Python_Home%\Lib\site-packages\matplotlib\mpl-data
  1. 编辑器打开此文件 matplotlibrc删除font.family和font.sans-serif两行前的#,并在font.sans-serif后添加微软雅黑字体Microsoft YaHei

  2. 下载字体:msyh.ttf (微软雅黑)放在matplotlib 字体文件夹下:# %Python_Home%\Lib\site-packages\matplotlib\mpl-data\fonts\ttf

  3. 删除.matplotlib/cache里面的两个缓存字体文件C:\Users\你的用户名\.matplotlib

绘制一次方程

使用matplotlib中的pylot包进行简单绘图。

import numpy as np
from matplotlib import pyplot as plt

x = np.arange(0,9)
y = 2*x+1
plt.title("Matplotlib Demo1")
plt.xlabel("x axis:")
plt.ylabel("y axis:")
plt.plot(x,y)
plt.show()

绘制离散图

向pyplot的plot()函数添加特殊的格式化字符串可以显示离散值。

字符描述
'-'实线样式
'--'短横线样式
'-.'点划线样式
':'虚线样式
'.'点标记
','像素标记
'o'圆标记
'v'倒三角标记
'^'正三角标记
'<'左三角标记
'>'右三角标记
'1'下箭头标记
'2'上箭头标记
'3'左箭头标记
'4'右箭头标记
's'正方形标记
'p'五边形标记
'*'星形标记
'h'六边形标记 1
'H'六边形标记 2
'+'加号标记
'x'X 标记
'D'菱形标记
'd'窄菱形标记
'|'竖直线标记
'_'水平线标记

以下是颜色的缩写:

字符颜色
'b'蓝色
'g'绿色
'r'红色
'c'青色
'm'品红色
'y'黄色
'k'黑色
'w'白色

例如:要显示圆来代表点,而不是上面示例中的线,请使用 ob 作为 plot() 函数中的格式字符串。

绘制正弦函数

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
m = np.arange(0,4,0.1)
n = np.sin(m*np.pi)
plt.title(u"Matplotlib 正弦函数")
plt.xlabel(u"x 轴:")
plt.ylabel(u"y 轴:")
plt.plot(m,n,'-')
plt.show()

绘制子图

pyplot.subplot(nrows,ncols,index)可以在一个figure中添加多个子图像。

使用plt.subtiltle('')给整个figure添加标题,使用plt.title(’’)给每个subplot添加子标题,修改x轴范围使用plt.xlim(min,max),修改x轴刻度使用plt.xticks([numlist],[textlist])。

import numpy as np
from matplotlib import pyplot as plt
import matplotlib
x = np.arange(0,3,0.05)
n = np.linspace(-np.pi/2,np.pi/2,50)
y = np.sin(x*np.pi)
z = np.cos(x*np.pi)
p = np.tan(n)
q = np.tan(np.pi/2-n)

plt.figure(figsize = (16,9),dpi = 80)

plt.suptitle('Matplotlib 绘制多图',fontsize = 40,weight = 40)

plt.subplot(2,2,1)
plt.title(u"正弦函数")
plt.xlabel(u"x 轴:")
plt.ylabel(u"y 轴:")
plt.plot(x,y,'-',label = 'sine')

plt.subplot(2, 2, 2)
plt.title(u"余弦函数")
plt.xlabel(u"x 轴:")
plt.ylabel(u"y 轴:")
plt.plot(x,z,'-',label = 'cosine')

plt.subplot(2, 2, 3)
plt.xlim(n.min()*1.1,n.max()*1.1)
plt.xticks([-np.pi/2,-np.pi/4,0,np.pi/4,np.pi/2],[r'$-\pi/2$',r'$-\pi/4$',r'$0$',r'$\pi/4$',r'$\pi/2$'])
plt.ylim(-10,10)
plt.title(u"正切函数")
plt.xlabel(u"x 轴:")
plt.ylabel(u"y 轴:")
plt.plot(n,p,'-',label = 'tan')

plt.subplot(2, 2, 4)
plt.xlim(n.min()*1.1,n.max()*1.1)
plt.xticks([-np.pi/2,-np.pi/4,0,np.pi/4,np.pi/2],[r'$-\pi/2$',r'$-\pi/4$',r'$0$',r'$\pi/4$',r'$\pi/2$'])
plt.ylim(-10,10)
plt.title(u"余弦函数")
plt.xlabel(u"x 轴:")
plt.ylabel(u"y 轴:")
plt.plot(n,q,'-',label = 'cotan')

plt.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

深度学习推荐算法

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

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

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

打赏作者

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

抵扣说明:

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

余额充值