matplotlib学习笔记

1. figure

一张图就是一个figure

import matplotlib.pyplot as plt
plt.figure() # 创建一个画图窗口

每通过plt.figure()创建一个画图窗口至再次创建一个画图窗口前,画出的所有图形都在这个figure中。例如:

plt.figure()

plt.plot()
.....

plt.figure()
plt.plot()
....

则会创建两个figure

2. plt.plot()

plt.plot()只是画出图形保存在内存中,必须要通过调用plt.show()才能将所有图形显示出来。

3. plt.figure()

plt.figure(num=n1, figsize=(a,b))

设置figure的图像编号为figuren1,figure大小为 a × b a×b a×b

4. plt.plot()

plt.plot(x, y, color='red', linewidth=1.0, linestyle='==')

画图y=f(x),线条颜色red,线条宽度1.0,线条风格==

5. 设置坐标范围

plt.xlim((x1, x2)) # 设置x坐标轴范围
plt.ylim((y1, y2)) # 设置y坐标轴范围

6. 设置坐标轴名称

plt.xlabel(xlabel_name) # 设置x轴的名称
plt.ylabel(ylabel_name) # 设置y轴的名称

7. 设置坐标轴刻度

ticks是x轴的单位,包含起点,重点,相邻两刻度的大小,为numpy.ndarry类型,开始时默认为设置的x,后面可以更改。

new_ticks = np.linspace(a, b, c)
plt.xticks(new_ticks) #设置新的x轴刻度

###8 设置坐标轴的文字描述
可以为y轴设置文字描述,只需相关文字与坐标数值一一对应即可

plt.yticks([-2, -1, 0, 1],['very bad', 'bad', 'normal', 'good'])
plt.show()

9. 设置字体

设置字体为数学斜体

plt.yticks([-2, -1, 0, 1],
			[r'$very\ bad$', r'$bad\alpha$', r'$normal$', r'$good$'])

使用转义字符打印 α α α,空格等。

10. 改变坐标原点的位置

默认坐标轴的原点在左下角,可以改变原点位置

ax = plt.gca() #获取当前坐标轴, gca=>get current axis
ax.spines获取坐标轴的四条边
ax.spines['left']获取左边轴, ax.spines['top']获取上边轴
ax.spines['left'].set_color('none') 隐藏左边轴

11. 设置默认坐标轴

以原来的点(-1, 0)为新的坐标原点

ax = plt.gca() # 获取当前坐标轴
ax.xaxis.set_ticks_position('bottom') # 设置下边框为x轴
ax.yaxis.set_ticks_position('left') # 设置左边框为y轴
ax.spines['bottom'].set_position(('data', -1))
ax.spines['left'].set_position(('data', 0))

12. 设置图例legend

plot.legend()

13. 以时间为横坐标来画图

plt.plot_date(date, Y, "-", label="y")

14. 折线下面填充颜色

ax=plt.gca()
ax.plot(date, Y, "-", label="y")
ax.fill_between(data,Y,0,alpha=0.3, where=(Y > 10), facecolor='g')
ax.fill_between(data,Y,0,alpha=0.3, where=(Y <= 10), facecolor='r')

15. 将横坐标label旋转45度,适用于日期等

for label in ax.xaxis.get_ticklabels()
label.set_rotation(45)

ax.spines['left'].set_color('r').set_visible(False).set_linewidth(5)
ax.tick_params(axis='x', colors='') #设置x刻度的颜色

16. 改变画图风格:

print(plt.style.available)
from matplotlib import style
style.use('dark_background')

可定义自己的风格:

print(plt.__file__) #风格定义的文件存放目录

17. 改变figure大小

plt.figure(figsize=(width, height))

18. 显示网格

plt.grid(True)

19. 使用subplot画图

import matplotlib.pyplot as plt
import numpy as np

fig, axs = plt.subplots(len(imgs), 1, figsize=(20,50))  # n行1列

for i, img in enumerate(imgs):
    axs[i].imshow(img)  # 第i行第1列

plt.show()

如果是2行2列:

import matplotlib.pyplot as plt
import numpy as np

fig, axs = plt.subplots(2, 2, figsize=(20,50))  # n行1列

axs[0, 0].imshow(img1)
axs[0, 1].imshow(img1)
axs[1, 0].imshow(img1)
axs[1, 1].imshow(img1)

plt.show()

20. 调整axes间隙

fig, axes = plt.subplots(len(images_aug)/4, 4, figsize=(30, 50))

###使用subplots_adjust调整间隙
plt.subplots_adjust(left=0.2, bottom=0.2, right=0.8, top=0.8, hspace=0.3, wspace=0.0)
for i in range(len(images_aug)):
	axes[i/4, i%4].set_title("hahaha")
    axes[i/4, i%4].imshow(images_aug[i])

plt.show()

参数:

  • left: figure最左边的坐标
  • right: figure最右边的坐标
  • top: figure最上边的坐标
  • bottom: figure最下边的坐标
  • hspace: 上下间距
  • wspace: 左右间距

21. 将axes画出的图像保存起来

fig, axes = plt.subplots(len(images_aug)/4, 4, figsize=(30, 50))
...
fig.savefig(filename)
plt.close(fig)

22. 使用subplot画图

import matplotlib.pyplot as plt

plt.subplots(rows, cols, figsize=(cols*size, rows*size))

for cnt in range(100):
	plt.subplot(rows, cols, cnt+1)
	plt.imshow()
	plt.title()
	plt.axis("off")

plt.tight_layout()
plt.show()

23 保存图像

保存时去掉axis并去掉四周的margin

plt.imshow(img)
plt.plot(x1, y1)

plt.savefig('img.png',  bbox_inches='tight', pad_inches=0)
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值