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 # 这个函数到这里就输出成功啦,