Python日记(3)——matplotlib基础入门(1) 每天做一个Python小练习,顺便记录一些小技巧。
由于化工实验数据处理需要把数据转换成图标,所以要逐步学习Python里比较好用的matplotlib库,加下来就是从0基础开始学习的过程。
(1)简明matplotlib
在使用matplotlib库之前,先添加进该库和另一个常用的库Numpy。
在Pycharm下有个Python Packages方便我们下载需要的库,示意图如下:
文章图片
添加好需要的两个库之后,就可以导入使用了。
import matplotlib.pyplot as plt
import numpy as np
【python|Python日记(3)——matplotlib基础入门(1)】这里导入的时候,使用了简化名,为了方便以后使用。
接下来,就可以尝试生成一个简单的图形。
import matplotlib.pyplot as plt
import numpy as npdata = https://www.it610.com/article/np.arange(10)
plt.plot(data)plt.show()
创建好实例后,务必在最后写上show(),才能展示你所要创建的图片。
就会得到以下的图形:
文章图片
(2)图板与子图
绘图前,得先准备好一个图板或者画布,才能把自己需要的图绘画出来,所以我们的可以使用figure()函数,创建并定义出一个我们需要用到的图板。
fig = plt.figure()
创建出来的图板还只是一个空图板,并没有我们可以用的上的工作区,所以还需要使用add_subplot()创建一个或多个子图(subplot)
ax1 = fig.add_subplot(2, 2, 1)
ax2 = fig.add_subplot(2, 2, 2)
ax3 = fig.add_subplot(2, 2, 3)
上面代码的意思时,该图片一个是2*2的工作区里的第n个,最多只能创建四个。
得到图片如下:
文章图片
ps:更为方便的用法如下:
fig, axes = plt.subplots(nrows=2, ncols=2)
axes[0,0].set(title='Upper Left')
axes[0,1].set(title='Upper Right')
axes[1,0].set(title='Lower Left')
axes[1,1].set(title='Lower Right')
当你输入绘图命令
plt.plot(np.random.rand(50).cumsum(), 'k--') plt.plot([1.5, 3.5, -2, 1.6])
matplotlib会默认在最后一个图板或者图板上进行绘制,从而隐藏图片和子图的创建,图片如下 文章图片
使用子图网络创建图片是非常常见的任务,所以matplotlib包含了一种便捷方法
plt.subplots
, 它创建一个新的图片,然后返回包含了一个已生成子图对象的NumPy数组。fig, axes = plt.subplots(2, 3)
这种方法非常实用,因为数组axes可以像二维数组那样方便地进行索引。例如,
axes[0, 1]
。你也可以通过使用sharex
和sharey
来表明所有子图共享一个x轴和y轴。这在使用相同的比例进行数据对比时,这种方法会十分有效。调整子图周围的间距
默认情况下,matplotlib会在子图的外部和子图之间留出一定的间距,这个间距都是相对于高度和宽度来指定的,所以如果你通过编程或手动GUI窗口来调整图的大小,那么图就会自动调整。你可以使用图对象上的
subplots_adjust
方法更改间距,也可以用作顶层函数:subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
wspace
和hspace
分别控制的是图片的宽度和高度百分比吗,以用作子图间的间距,下面是个小例子,我将这个间距一直缩小到零。fig, axes = plt.subplots(2, 2, sharex=True, sharey=True)for i in range(2):
for j in range(2):
axes[i, j].hist(np.random.randn(500), bins=50, color='k', alpha=0.5)plt.subplots_adjust(wspace=0, hspace=0)plt.show()
输出没有内部子图间隔的图像如下:
文章图片
推荐阅读
- python|python数据分析apply(),map(),applymap()用法归纳
- 机器学习|什么是One-Hot Encoding()
- python|聊聊我的 Pandas 学习经历及动手实践
- 深度学习|PyTorch 安装过程总结(2022-03-06)
- 算法|字节跳动2019春招研发编程题
- 程序员|自从用了Charles,Fiddler已经被我彻底卸载了
- 程序员|向英雄联盟生涯致敬,三十行Python代码爬取LOL官网英雄皮肤图片
- pygame|Maze_AI: 一款基于 Python + Pygame + AI 算法的迷宫小游戏
- 软件测试|Python基于selenium三方库实现淘宝秒杀功能