任务描述
本关任务:掌握matplotlib
的基本使用技巧,并能简单使用matplotlib
进行可视化。
相关知识
在深入使用matplotlib
之前你需要知道几个matplotlib
技巧,这些技巧能帮助你更快速掌握matplotlib
。
导入matplotlib
和numpy
,pandas
一样,在导入matplotlib
时我们也可以用一些常用的简写形式:
import matplotlib as mpl
import matplotlib.pyplot as plt
pyplot
是最常用的画图模块接口,功能非常强大。
显示图像
开发环境的不同,显示图像的方式也就不一样,一般有三种开发环境,分别是脚本、IPython shell
、IPython Notebook
。
在脚本中使用matplotlib
进行可视化时显示图像可以使用plt.show()
。
在IPython shell
中使用matplotlib
可视化非常方便,使用%matplotlib
命令启动matplotlib
模式。之后的任何plt
命令都会自动打开一个图像窗口,当有新的命令,图像就会更新。但对已经画好的图像不会自动实时更新。对于这种可以使用plt.draw()
强制更新。
在IPython Notebook
中画图和IPthon shell
类似,也需要使用%matplotlib
命令。图像的显示是嵌在IPython Notebook
页面中。有两种展示形式:%matplotlib notebook
交互式图形;%matplotlib inline
静态图形。
matplotlib
还可以直接将图像保存文件,通过plt.savefig("test.jpg")
命令保存文件。
plt.savefig("test.jpg")
画图接口
matplotlib
有两个画图接口:一个是便捷的matlab
风格接口,另一个是功能更强大的面向对象接口。
matplotlib
的matlab
接口许多语法都和MATLAB
类似,所以使用过MATLAB
的朋友们想必很快就能上手matplotlib
。
import matplotlib.pyplot as plt#导入模块
plt.figure(figsize=(10,10))#创建图形,并设置大小为10 x 10
plt.subplot(2,1,1)#创建子图1(行,列,子图编号)
plt.plot([1,2,3,4], [1,2,3,4])
plt.subplot(2,1,2)#创建子图2(行,列,子图编号)
plt.plot([4,3,2,1], [1,2,3,4])
plt.show()
面向对象接口可以适应更加复杂的场景,更好地控制图形,在画比较复杂的图形市,面向对象方法会更方便。通过下面的代码,可以用面向对象接口重新创建之前的图形。
fig,ax=plt.subplots(2)#ax是一个包含2个axes对象的数组
ax[0].plot([1,2,3,4], [1,2,3,4])
ax[1].plot([4,3,2,1], [1,2,3,4])
plt.show()
编程要求
在右侧编辑器Begin-End
补充代码,对传入的x
,y
两个数组做折线图,x
对应x
轴,y
对应y
轴。并保存到Task1/image1/T2.png
,具体要求如下:
-
折线图的
figsize
为(10, 10)
; -
文件名为
Task1/image1/T2.png
。
测试说明
平台会对你编写的代码进行测试:
预期输出:你的答案与正确答案一致
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
def student(x, y):
# ********** Begin *********#
plt.figure(figsize=(10, 10))
plt.plot(x, y, marker='o', linestyle='-', color='b', label='Line')
plt.savefig('Task1/image1/T2.png')
plt.close()
# ********** End **********#