Jupyter lab 中 使用 Matplotlib 实时更新画图 # 不麻烦的30行超快速方法

Jupyter lab 中 使用 Matplotlib 实时更新画图 # 不麻烦的30行超快速方法

# 不解释额外细枝末节的东西,只讲究能通能用 。ps我喜欢用jupyter lab , 你管我

用matplotlib绘图,之前一直用的是 清空重画 的方法,挺 麻烦的,

今天看到matplotlib 还有一个实时绘图的工具 animation,高兴

方法如下, 每一步都会尽量注释, ( 数据需要自己准备)

%matplotlib ipympl                                  # 这个是在jupyterlab 中要额外安装的一个库, 否则不能开启实时画图(此处省略了解释交互式界面的废话,知道了没用,照着做就对了)
import numpy as np                                  # 一个数学库,我下意识的导入了,其实没用 算是日常npc1号吧
import matplotlib.pyplot as plt                     # 导入 主角 matplotlib
import time                                         # 这是日常npc2号
import matplotlib                                   # 我就是喜欢多导一遍
import pandas as pd                                 # 日常npc3号
from matplotlib.animation import FuncAnimation      # 导入主角的武器 animation
%config InlineBackend.figure_format = 'retina'      # 导入主角的皮肤 
fig, ax = plt.subplots()                            # fig指画板,ax是上面的画布
line, = ax.plot([])                                 # 铅笔在画布上画根草稿线,晚点具体在决定这里放什么
plt.title('real time price')                        # 给画板起个题目吧
ax.set_xlabel('timestamp')                          # xlabel是横轴的意思, 框框(正常人念括号)里面就写横轴的名字
ax.set_ylabel('price') # 
def update(): # 
    file_path = './market.btcusdt.trade.detail.csv' # 这里是自己要准备的数据,只需要横坐标,纵坐标就好了
    data = pd.read_csv(file_path).tail(500)         # 稍微处理一下数据,可以无视
    x_0 = data.index.values                         # 把横轴的数据拿来
    y_0 = data['price'].values                      # 把纵轴的数据放进来
    ax.set_xlim(x_0[0], x_0[-1])                    # 这里要设置一下,画布显示的范围, 你可以不用全部显示你的数据,也可以全部显示并在边缘留点空白
    ax.set_ylim(min(y_0)-50, max(y_0)+50)           # 这里是显示的纵轴范围, 我在上下多加了50的空档
#     print('x_0',x_0)                              # 你可以打印出来看看,不用担心,这里不会跟着实时更新的图标重复打印
#     print('y_0',y_0) 
    line.set_data((x_0, y_0))                       # 这里把我们的横纵坐标数据放进  我们一开始 画的草稿线上 
    return line                                     # 这个函数到这里就输出成功啦,