python绘图基础—快速绘图和面向对象绘图
2018-01-15 14:53
288 查看
pyplot模块虽然用法简单,但不适合在较大的应用程序中使用。 为了将面向对象的绘图库包装成只使用函数的调用接口,pyplot模块的内部保存了当前图表以及当前子图等信息。当前的图表和子图可以使用plt.gcf()和plt.gca()获得,分别表示"Get Current Figure"和"Get Current Axes"。在pyplot模块中,许多函数都是对当前的Figure或Axes对象进行处理,比如说: plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调用ax.plot()方法实现真正的绘图。
快速绘图:
面向对象方法画出相同的图:
另外面向对象绘图中加坐标名字和标题要加set_:
import matplotlib.pyplot as plt
x = [5, 6, 7, 8]
y = [7, 8, 5, 6]
fig = plt.figure(1)
ax1 = fig.add_subplot(111)
ax1.plot(x,y)
ax1.set_title('First Chart')
ax1.set_xlabel('x axis')
ax1.set_ylabel('y axis')
快速绘图:
import kNN import matplotlib.pyplot as plt datingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt') plt.figure() #只有一张图的情况下不写会自动生成 plt.subplot(121) plt.scatter(datingDataMat[:, 1],datingDataMat[:, 2],color='r') plt.subplot(122) plt.plot([1,2,3], [4,5,6]) plt.show()
面向对象方法画出相同的图:
import kNN import matplotlib.pyplot as plt datingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt') fig = plt.figure() #创建一张图命名为fig ax1 = fig.add_subplot(121) #将fig分成1行2列,第一子图命名为ax1 ax1.scatter(datingDataMat[:, 1],datingDataMat[:, 2],color='r') #对第一子图ax1画散点图 ax2 = fig.add_subplot(122) #第二子图命名为ax2 ax2.plot([1,2,3], [4,5,6]) #对第二子图画直线图 plt.show() #这种写法中每一步操作都有一个对象同时画两张图:
import kNN import matplotlib.pyplot as plt datingDataMat, datingLabels = kNN.file2matrix('datingTestSet2.txt') fig1 = plt.figure(1) #建立fig1并选定fig1,下面如果不换对象,操作都是对fig1,在面向对象的写法中,因为每一部都写入了对象,所以不需要考虑写法混乱的情况 ax1 = fig1.add_subplot(121) ax1.scatter(datingDataMat[:, 1],datingDataMat[:, 2],color='r') ax2 = fig1.add_subplot(122) ax2.plot([1,2,3], [4,5,6]) fig2 = plt.figure(2) ax3 = fig2.add_subplot(111) ax3.plot([1,2,3], [4,5,6]) plt.show()快速绘图写法:
import matplotlib.pyplot as plt plt.figure(1) # 选定第一张图 plt.subplot(211) # 选定第一张图中的第一张子图 plt.plot([1,2,3]) # 在第一张图的第一张子图中画 plt.subplot(212) # 选定第一张图中的第二张子图 plt.plot([4,5,6]) # 在第一张图的第二张子图中画 plt.figure(2) # 选定第二张图 plt.plot([4,5,6]) # 不写plt.subplot(111)(括号中的111不可省略)默认创建子图subplot(111) plt.figure(1) # 切换到figure 1 ; 子图subplot(212)仍旧是当前图 plt.subplot(211) # 令子图subplot(211)成为figure1的当前图 plt.title('Easy as 1,2,3') # 添加subplot 211 的标题在快速绘图中必须要考虑操作对象,不能能混
另外面向对象绘图中加坐标名字和标题要加set_:
import matplotlib.pyplot as plt
x = [5, 6, 7, 8]
y = [7, 8, 5, 6]
fig = plt.figure(1)
ax1 = fig.add_subplot(111)
ax1.plot(x,y)
ax1.set_title('First Chart')
ax1.set_xlabel('x axis')
ax1.set_ylabel('y axis')
相关文章推荐
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 4. 函数
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 5. 参数
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 0. 准备工作
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 3. 循环
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 1. 神秘朋友
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 5. 参数
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 1. 神秘朋友
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 7. 条件循环
- Python可视化学习(2):Matplotlib快速绘图基础
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 6. 条件
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 3. 循环
- Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 4. 函数
- Python基础09 面向对象的进一步拓展
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
- python基础之面向对象(二)