Hello 大家好,我是一名新来的金融领域打工人,日常分享一些python知识,都是自己在学习生活中遇到的一些问题,分享给大家,希望对大家有一定的帮助!
今天给大家讲解一下我平时在进行数据可视化的时候经常使用到的内容——子图的绘制,相信大家在平时的可视化结果展示的时候需要绘制多个图,那么这种绘制多子图的方法怎么样才能在python中实现呢?
首先准备好要用的数据,我们通过pandas进行读取:
import pandas as pd
data = pd.read_excel('万得全A收盘价.xlsx',index_col=0,parse_dates=[0])
data
我们打印一下结果看看,这个数据其实就是每日股票交易的收盘价:
close Date 2013-01-07 2235.9000 2013-01-08 2234.0900 2013-01-09 2236.1500 2013-01-10 2245.0500 2013-01-11 2204.1400 ... ... 2022-03-31 5095.6079 2022-04-01 5131.5835 2022-04-06 5128.8027 2022-04-07 5039.9453 2022-04-08 5042.1172 2249 rows × 1 columns
下面介绍我经常用到的子图绘制的三种方法:
1.使用 subplots
import matplotlib.pyplot as plt fig, ax = plt.subplots(2, 2, figsize=(12,8)) #我们定义子图的2x2的情况,也就是4个子图 ax[0,0].plot(data['close'], color='b') #ax[0,0]其实相当于进行定位 ax[0,1].plot(data['close'], color='r') ax[1,0].plot(data['close'], color='g') ax[1,1].plot(data['close'], color='m')
这里我们要注意ax[0,0],ax[0,1]等等其实是在进行子图的定位,我们定义的是2x2的子图,其中第一个子图的“坐标”就是(0,0),第二个子图的“坐标”就是(0,1),第三个子图的“坐标”就是(1,0),第四个子图的“坐标”就是(1,1),我们来看看结果,成功绘制四个子图:
2.使用subplot
import matplotlib.pyplot as plt plt.figure(figsize=(12,8)) plt.subplot(2,2,1) #相当于定位 进入第一个子图 plt.plot(data['close'], color='b') plt.subplot(2,2,2) #相当于定位 进入第二个子图 plt.plot(data['close'], color='r') plt.subplot(2,2,3) plt.plot(data['close'], color='g') plt.subplot(2,2,4) plt.plot(data['close'], color='m')
我们同样绘制2x2的子图,需要注意plt.subplot(2,2,1)也是相当于确定了子图数量为2x2,并且进入第一个子图,plt.subplot(2,2,2)为进入第二个子图,plt.subplot(2,2,3)为进入第三个子图,plt.subplot(2,2,4)为进入第四个子图,我们来看看结果,成功绘制四个子图:
3.使用subplot2grid
import matplotlib.pyplot as plt plt.figure(figsize=(12,8)) ax0 = plt.subplot2grid(shape=(2, 2), loc=(0, 0)) #rowspan=1跨越的行数 ax1 = plt.subplot2grid(shape=(2, 2), loc=(0, 1)) ax2 = plt.subplot2grid(shape=(2, 2), loc=(1, 0)) ax3 = plt.subplot2grid(shape=(2, 2), loc=(1, 1)) ax0.plot(data['close'], color='b') ax1.plot(data['close'], color='r') ax2.plot(data['close'], color='g') ax3.plot(data['close'], color='m')
我们同样绘制2x2的子图,需要注意loc=(0,0)相当于是在定位第一个子图,loc=(0,1)相当于是在定位第二个子图,loc=(1,0)相当于是在定位第三个子图,loc=(1,1)相当于是在定位第四个子图,这一点与subplots相似,我们来看看结果,成功绘制四个子图:
以上内容我们通过三种方法绘制了相同的子图,大家可以选择自己所喜欢的方法即可。
今天的文章就分享到这里啦!



