请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3365806 新帖:13

matplotlib 数据可视化 - 多面板图

外汇工厂发表于:5 月 10 日 00:36回复(1)

在数据分析的道路上,不能没有数据可视化!这将是我本周研究matplotlib的最后一个主题,从此,matplotlib的基本框架、用法就已经有了基础的认识,在以后的使用过程中,可“举一隅而以三隅反”,有问题解决问题,边做边学,知行合一。

另外我在这里声明一下,我的《matplotlib数据可视化》系列的文章,皆是学习笔记,内容非原创,恶者勿喷。我也是刚接触python不久,还在初学者的道路上。这条路艰难而长远,需得上下求索!近期,我也在考虑写一些原创的东西,希望可以和有志之士分享一二。所谓何以解忧,乃生而遇知己也!

在数据分析的道路上,不能没有数据可视化!这将是我本周研究matplotlib的最后一个主题,从此,matplotlib的基本框架、用法就已经有了基础的认识,在以后的使用过程中,可“举一隅而以三隅反”,有问题解决问题,边做边学,知行合一。

另外我在这里声明一下,我的《matplotlib数据可视化》系列的文章,皆是学习笔记,内容非原创,恶者勿喷。我也是刚接触python不久,还在初学者的道路上。这条路艰难而长远,需得上下求索!近期,我也在考虑写一些原创的东西,希望可以和有志之士分享一二。所谓何以解忧,乃生而遇知己也!¶

import matplotlib.pyplot as plt 
import numpy as np

多面板图形¶

如何在其他子图中显示子图¶

每个图表都有一个Axes对象,即拥有轴对象的框架。如果想在一个子图中显示另一个子图,那就可以在这个框架里再添加一个小的框架,如此,即可在上面添加一个小的图像。

'''获利一个figure图形对象'''
fig = plt.figure()
'''在该图形上添加一个axes对象'''
ax = fig.add_axes([0.1,0.1,0.8,0.8])
'''再添加一个axes对象'''
inner_ax = fig.add_axes([0.6,0.6,0.25,0.25])
'''显示'''
plt.show()
'''获利一个figure图形对象'''
fig = plt.figure()
'''在该图形上添加一个axes对象'''
ax = fig.add_axes([0.1,0.1,0.8,0.8])
'''再添加一个axes对象'''
inner_ax = fig.add_axes([0.6,0.6,0.25,0.25])

'''分别在两个Axes对象上绘图'''
x1 = np.arange(10)
y1 = np.array([1,2,7,1,5,2,4,3,2,1])
x2 = np.arange(10)
y2 = np.array([1,3,7,1,9,2,6,3,2,7])
ax.plot(x1,y1,c='r')
inner_ax.plot(x2,y2,c='g')

'''显示'''
plt.show()

子图网格¶

GridSpec()函数可以将绘图区域分成多个子区域,你可以把一个或多个子区域分配给每一幅子图。

gs = plt.GridSpec(3,3)
fig = plt.figure(figsize=(6,6))
fig.add_subplot(gs[1,:2])
fig.add_subplot(gs[0,:2])
fig.add_subplot(gs[2,0])
fig.add_subplot(gs[:2,2])
fig.add_subplot(gs[2,1:])
plt.show()

绘制实际的图像。

gs = plt.GridSpec(3,3)
fig = plt.figure(figsize=(6,6))
x1 = np.array([1,3,2,5])
y1 = np.array([4,3,7,2])
x2 = np.arange(5)
y2 = np.array([3,2,4,6,4])
s1 = fig.add_subplot(gs[1,:2])
s1.plot(x1,y1,'r')
s2 = fig.add_subplot(gs[0,:2])
s2.bar(x2,y2)
s3 = fig.add_subplot(gs[2,0])
s3.barh(x2,y2,color='g')
s4 = fig.add_subplot(gs[:2,2])
s4.plot(x2,y2,'k')
s5 = fig.add_subplot(gs[2,1:])
s5.plot(x1,y1,'b^',x2,y2,'yo')
plt.show()
 

全部回复

0/140

量化课程

    移动端课程