2025-07-10 15:07:31 +08:00
|
|
|
|
{
|
|
|
|
|
|
"cells": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"id": "initial_id",
|
|
|
|
|
|
"metadata": {
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"collapsed": true,
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"ExecuteTime": {
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"end_time": "2025-07-15T02:42:15.578383Z",
|
|
|
|
|
|
"start_time": "2025-07-15T02:42:15.555862Z"
|
|
|
|
|
|
}
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"source": [
|
|
|
|
|
|
"from datetime import datetime\n",
|
|
|
|
|
|
"%load_ext autoreload\n",
|
|
|
|
|
|
"%autoreload 2\n"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
|
"text": [
|
|
|
|
|
|
"The autoreload extension is already loaded. To reload it, use:\n",
|
|
|
|
|
|
" %reload_ext autoreload\n"
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"execution_count": 39
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
|
"id": "a559dfcf",
|
|
|
|
|
|
"metadata": {
|
|
|
|
|
|
"ExecuteTime": {
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"end_time": "2025-07-15T02:42:19.278093Z",
|
|
|
|
|
|
"start_time": "2025-07-15T02:42:15.586150Z"
|
2025-07-10 15:07:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
},
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"source": [
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"from turtle import down\n",
|
|
|
|
|
|
"from src.analysis.result_analyzer import ResultAnalyzer\n",
|
|
|
|
|
|
"# 导入所有必要的模块\n",
|
|
|
|
|
|
"from src.data_manager import DataManager\n",
|
|
|
|
|
|
"from src.backtest_engine import BacktestEngine\n",
|
|
|
|
|
|
"from src.indicators.indicator_list import INDICATOR_LIST\n",
|
|
|
|
|
|
"from src.indicators.indicators import RSI, HistoricalRange, NormalizedATR, RateOfChange, StochasticOscillator\n",
|
|
|
|
|
|
"from src.strategies.OpenTwoFactorStrategy import SimpleLimitBuyStrategyLong, SimpleLimitBuyStrategyShort, SimpleLimitBuyStrategy\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# --- 配置参数 ---\n",
|
|
|
|
|
|
"# 获取当前脚本所在目录,假设数据文件在项目根目录下的 data 文件夹内\n",
|
|
|
|
|
|
"# data_file_path = '/mnt/d/PyProject/NewQuant/data/data/SHFE_rb2510/SHFE_rb2510_min60.csv'\n",
|
|
|
|
|
|
"# data_file_path = \"/mnt/d/PyProject/NewQuant/data/data/KQ_m@CZCE_MA/KQ_m@CZCE_MA_min60.csv\"\n",
|
|
|
|
|
|
"# data_file_path = \"/mnt/d/PyProject/NewQuant/data/data/KQ_m@SHFE_rb/KQ_m@SHFE_rb_min60.csv\"\n",
|
|
|
|
|
|
"data_file_path = \"/mnt/d/PyProject/NewQuant/data/data/KQ_m@DCE_jm/KQ_m@DCE_jm_min60.csv\"\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"initial_capital = 100000.0\n",
|
|
|
|
|
|
"slippage_rate = 0.000 # 假设每笔交易0.1%的滑点\n",
|
|
|
|
|
|
"commission_rate = 0.0001 # 假设每笔交易0.02%的佣金\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"global_config = {\n",
|
|
|
|
|
|
" 'symbol': 'KQ_m@DCE_jm',\n",
|
|
|
|
|
|
"}\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# Short 可用\n",
|
|
|
|
|
|
"strategy_parameters = {\n",
|
|
|
|
|
|
" # 'symbol': \"SHFE_rb2501\", # 根据您的数据文件中的品种名称调整\n",
|
|
|
|
|
|
" 'trade_volume': 1,\n",
|
|
|
|
|
|
" 'lag': 7,\n",
|
|
|
|
|
|
" # 'range_factor': 1.0, # 示例值,需要通过网格搜索优化\n",
|
|
|
|
|
|
" # 'profit_factor': 4.9, # 示例值\n",
|
|
|
|
|
|
" # 'range_factor': 0.8, # 示例值,需要通过网格搜索优化\n",
|
|
|
|
|
|
" # 'profit_factor': 4.7, # 示例值\n",
|
|
|
|
|
|
" 'range_factor_l': 1.0, # 示例值,需要通过网格搜索优化\n",
|
|
|
|
|
|
" 'profit_factor_l': 4.9, # 示例值\n",
|
|
|
|
|
|
" 'range_factor_s': 0.8, # 示例值,需要通过网格搜索优化\n",
|
|
|
|
|
|
" 'profit_factor_s': 4.7, # 示例值\n",
|
|
|
|
|
|
" 'max_position': 10,\n",
|
|
|
|
|
|
" 'enable_log': False,\n",
|
|
|
|
|
|
" 'stop_loss_points': 20,\n",
|
|
|
|
|
|
" 'use_indicator': True,\n",
|
|
|
|
|
|
" # 'indicator': RSI(40, 55, 70),\n",
|
|
|
|
|
|
" # 'indicator': RSI(25, 35, 45),\n",
|
|
|
|
|
|
" 'indicator_l': RSI(40, 55, 70),\n",
|
|
|
|
|
|
" 'indicator_s': RSI(25, 35, 45),\n",
|
|
|
|
|
|
"}\n",
|
|
|
|
|
|
"start_time = datetime(2021, 1, 1)\n",
|
|
|
|
|
|
"end_time = datetime(2024, 6, 1)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"start_time = datetime(2024, 6, 1)\n",
|
|
|
|
|
|
"end_time = datetime(2025, 6, 1)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# --- 1. 初始化数据管理器 ---\n",
|
|
|
|
|
|
"print(\"初始化数据管理器...\")\n",
|
|
|
|
|
|
"data_manager = DataManager(file_path=data_file_path, symbol=global_config['symbol'], start_time=start_time, end_time=end_time)\n",
|
|
|
|
|
|
"# 确保 DataManager 能够重置以进行多次回测\n",
|
|
|
|
|
|
"# data_manager.reset() # 首次运行不需要重置\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# --- 2. 初始化回测引擎并运行 ---\n",
|
|
|
|
|
|
"print(\"\\n初始化回测引擎...\")\n",
|
|
|
|
|
|
"engine = BacktestEngine(\n",
|
|
|
|
|
|
" data_manager=data_manager,\n",
|
|
|
|
|
|
" strategy_class=SimpleLimitBuyStrategy,\n",
|
|
|
|
|
|
" # current_segment_symbol=strategy_parameters['symbol'],\n",
|
|
|
|
|
|
" strategy_params=strategy_parameters,\n",
|
|
|
|
|
|
" initial_capital=initial_capital,\n",
|
|
|
|
|
|
" slippage_rate=slippage_rate,\n",
|
|
|
|
|
|
" commission_rate=commission_rate,\n",
|
|
|
|
|
|
" roll_over_mode=True,\n",
|
|
|
|
|
|
" start_time=start_time,\n",
|
|
|
|
|
|
" end_time=end_time,\n",
|
|
|
|
|
|
" indicators=INDICATOR_LIST\n",
|
|
|
|
|
|
")\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"print(\"\\n开始运行回测...\")\n",
|
|
|
|
|
|
"engine.run_backtest()\n",
|
|
|
|
|
|
"print(\"\\n回测运行完毕。\")\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# --- 3. 获取回测结果 ---\n",
|
|
|
|
|
|
"results = engine.get_backtest_results()\n",
|
|
|
|
|
|
"portfolio_snapshots = results[\"portfolio_snapshots\"]\n",
|
|
|
|
|
|
"trade_history = results[\"trade_history\"]\n",
|
|
|
|
|
|
"initial_capital_result = results[\"initial_capital\"]\n",
|
|
|
|
|
|
"bars = results[\"all_bars\"]\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# --- 4. 结果分析与可视化 ---\n",
|
|
|
|
|
|
"if portfolio_snapshots:\n",
|
|
|
|
|
|
" analyzer = ResultAnalyzer(portfolio_snapshots, trade_history, bars, initial_capital_result, INDICATOR_LIST)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
" analyzer.generate_report()\n",
|
|
|
|
|
|
" analyzer.plot_performance()\n",
|
|
|
|
|
|
" metrics = analyzer.calculate_all_metrics()\n",
|
|
|
|
|
|
" print(metrics)\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
" analyzer.analyze_indicators()\n",
|
|
|
|
|
|
"else:\n",
|
|
|
|
|
|
" print(\"\\n没有生成投资组合快照,无法进行结果分析。\")\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"# --- 4. 结果分析与可视化 (待实现) ---\n",
|
|
|
|
|
|
"# if portfolio_snapshots:\n",
|
|
|
|
|
|
"# analyzer = ResultAnalyzer(portfolio_snapshots, trade_history, initial_capital_result)\n",
|
|
|
|
|
|
"# metrics = analyzer.calculate_all_metrics()\n",
|
|
|
|
|
|
"# print(\"\\n--- 绩效指标 ---\")\n",
|
|
|
|
|
|
"# for key, value in metrics.items():\n",
|
|
|
|
|
|
"# print(f\" {key}: {value:.4f}\")\n",
|
|
|
|
|
|
"#\n",
|
|
|
|
|
|
"# print(\"\\n--- 绘制绩效图表 ---\")\n",
|
|
|
|
|
|
"# analyzer.plot_performance()\n",
|
|
|
|
|
|
"# else:\n",
|
|
|
|
|
|
"# print(\"\\n没有生成投资组合快照,无法进行结果分析。\")\n",
|
|
|
|
|
|
"\n"
|
|
|
|
|
|
],
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"outputs": [
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
|
"text": [
|
|
|
|
|
|
"初始化数据管理器...\n",
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"数据加载成功: /mnt/d/PyProject/NewQuant/data/data/KQ_m@DCE_jm/KQ_m@DCE_jm_min60.csv\n",
|
|
|
|
|
|
"数据范围从 2020-12-31 14:00:00 到 2025-07-11 13:00:00\n",
|
|
|
|
|
|
"总计 7601 条记录。\n",
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"\n",
|
|
|
|
|
|
"初始化回测引擎...\n",
|
|
|
|
|
|
"模拟器初始化:初始资金=100000.00, 滑点率=0.0, 佣金率=0.0001\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"--- 回测引擎初始化完成 ---\n",
|
|
|
|
|
|
" 策略: SimpleLimitBuyStrategy\n",
|
|
|
|
|
|
" 初始资金: 100000.00\n",
|
|
|
|
|
|
" 换月模式: 启用\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"开始运行回测...\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"--- 回测开始 ---\n",
|
|
|
|
|
|
"SimpleLimitBuyStrategy 策略初始化回调被调用。\n",
|
|
|
|
|
|
"开始将 DataFrame 转换为 Bar 对象流...\n",
|
|
|
|
|
|
"Bar 对象流生成完毕。\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"--- 回测结束,检查并平仓所有剩余持仓 ---\n",
|
|
|
|
|
|
"--- 回测结束 ---\n",
|
|
|
|
|
|
"总计处理了 1671 根K线。\n",
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"总计发生了 98 笔交易。\n",
|
|
|
|
|
|
"最终总净值: 100775.64\n",
|
|
|
|
|
|
"总收益率: 0.78%\n",
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"\n",
|
|
|
|
|
|
"回测运行完毕。\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"--- 结果分析器初始化完成 ---\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"--- 交易明细 ---\n",
|
2025-07-15 22:45:51 +08:00
|
|
|
|
" 2024-06-11 21:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1621.00 | Comm: 0.16\n",
|
|
|
|
|
|
" 2024-06-12 21:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1648.00 | Comm: 0.16 | PnL: -27.00\n",
|
|
|
|
|
|
" 2024-06-13 13:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1626.00 | Comm: 0.16\n",
|
|
|
|
|
|
" 2024-06-14 11:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1651.50 | Comm: 0.17 | PnL: -25.50\n",
|
|
|
|
|
|
" 2024-06-20 09:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1593.00 | Comm: 0.16\n",
|
|
|
|
|
|
" 2024-06-24 10:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1541.50 | Comm: 0.15 | PnL: 51.50\n",
|
|
|
|
|
|
" 2024-06-25 11:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1544.00 | Comm: 0.15\n",
|
|
|
|
|
|
" 2024-06-26 11:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1569.00 | Comm: 0.16 | PnL: -25.00\n",
|
|
|
|
|
|
" 2024-07-01 22:00:00 | BUY | DCE.jm2409 | Vol: 1 | Price: 1608.00 | Comm: 0.16\n",
|
|
|
|
|
|
" 2024-07-05 11:00:00 | CLOSE_LONG | DCE.jm2409 | Vol: 1 | Price: 1572.50 | Comm: 0.16 | PnL: -35.50\n",
|
|
|
|
|
|
" 2024-07-05 13:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1561.00 | Comm: 0.16\n",
|
|
|
|
|
|
" 2024-07-15 09:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1593.00 | Comm: 0.16 | PnL: -32.00\n",
|
|
|
|
|
|
" 2024-07-18 14:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1557.00 | Comm: 0.16\n",
|
|
|
|
|
|
" 2024-07-22 22:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1509.00 | Comm: 0.15 | PnL: 48.00\n",
|
|
|
|
|
|
" 2024-07-23 13:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1506.00 | Comm: 0.15\n",
|
|
|
|
|
|
" 2024-07-30 22:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1439.00 | Comm: 0.14 | PnL: 67.00\n",
|
|
|
|
|
|
" 2024-07-31 10:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1471.00 | Comm: 0.15\n",
|
|
|
|
|
|
" 2024-08-05 09:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1407.50 | Comm: 0.14 | PnL: 63.50\n",
|
|
|
|
|
|
" 2024-08-05 14:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1425.00 | Comm: 0.14\n",
|
|
|
|
|
|
" 2024-08-12 11:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1367.50 | Comm: 0.14 | PnL: 57.50\n",
|
|
|
|
|
|
" 2024-08-15 10:00:00 | SELL | DCE.jm2409 | Vol: 1 | Price: 1339.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-08-15 21:00:00 | CLOSE_SHORT | DCE.jm2409 | Vol: 1 | Price: 1361.00 | Comm: 0.14 | PnL: -22.00\n",
|
|
|
|
|
|
" 2024-08-16 22:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1330.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-08-19 09:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1351.00 | Comm: 0.14 | PnL: -21.00\n",
|
|
|
|
|
|
" 2024-08-19 14:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1347.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-08-21 21:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1375.50 | Comm: 0.14 | PnL: -28.50\n",
|
|
|
|
|
|
" 2024-08-23 11:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1337.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-08-26 21:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1363.00 | Comm: 0.14 | PnL: -26.00\n",
|
|
|
|
|
|
" 2024-09-03 13:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1333.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-09-03 22:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1298.00 | Comm: 0.13 | PnL: 35.00\n",
|
|
|
|
|
|
" 2024-09-10 13:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1235.00 | Comm: 0.12\n",
|
|
|
|
|
|
" 2024-09-11 21:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1264.50 | Comm: 0.13 | PnL: -29.50\n",
|
|
|
|
|
|
" 2024-09-23 21:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1249.00 | Comm: 0.12\n",
|
|
|
|
|
|
" 2024-09-24 13:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1272.50 | Comm: 0.13 | PnL: -23.50\n",
|
|
|
|
|
|
" 2024-09-27 13:00:00 | BUY | DCE.jm2501 | Vol: 1 | Price: 1391.00 | Comm: 0.14\n",
|
|
|
|
|
|
" 2024-09-30 09:00:00 | CLOSE_LONG | DCE.jm2501 | Vol: 1 | Price: 1535.00 | Comm: 0.15 | PnL: 144.00\n",
|
|
|
|
|
|
" 2024-10-08 13:00:00 | BUY | DCE.jm2501 | Vol: 1 | Price: 1501.00 | Comm: 0.15\n",
|
|
|
|
|
|
" 2024-10-09 09:00:00 | CLOSE_LONG | DCE.jm2501 | Vol: 1 | Price: 1477.50 | Comm: 0.15 | PnL: -23.50\n",
|
|
|
|
|
|
" 2024-10-09 14:00:00 | BUY | DCE.jm2501 | Vol: 1 | Price: 1469.00 | Comm: 0.15\n",
|
|
|
|
|
|
" 2024-10-09 22:00:00 | CLOSE_LONG | DCE.jm2501 | Vol: 1 | Price: 1432.00 | Comm: 0.14 | PnL: -37.00\n",
|
|
|
|
|
|
" 2024-10-11 10:00:00 | BUY | DCE.jm2501 | Vol: 1 | Price: 1458.00 | Comm: 0.15\n",
|
|
|
|
|
|
" 2024-10-16 21:00:00 | CLOSE_LONG | DCE.jm2501 | Vol: 1 | Price: 1432.00 | Comm: 0.14 | PnL: -26.00\n",
|
|
|
|
|
|
" 2024-10-16 22:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1444.00 | Comm: 0.14\n",
|
|
|
|
|
|
" 2024-10-17 14:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1358.00 | Comm: 0.14 | PnL: 86.00\n",
|
|
|
|
|
|
" 2024-10-18 14:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1371.00 | Comm: 0.14\n",
|
|
|
|
|
|
" 2024-10-23 22:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1329.00 | Comm: 0.13 | PnL: 42.00\n",
|
|
|
|
|
|
" 2024-10-24 14:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1341.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-10-25 22:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1385.00 | Comm: 0.14 | PnL: -44.00\n",
|
|
|
|
|
|
" 2024-10-28 22:00:00 | BUY | DCE.jm2501 | Vol: 1 | Price: 1407.00 | Comm: 0.14\n",
|
|
|
|
|
|
" 2024-10-29 13:00:00 | CLOSE_LONG | DCE.jm2501 | Vol: 1 | Price: 1378.00 | Comm: 0.14 | PnL: -29.00\n",
|
|
|
|
|
|
" 2024-10-31 10:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1358.00 | Comm: 0.14\n",
|
|
|
|
|
|
" 2024-11-06 22:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1316.50 | Comm: 0.13 | PnL: 41.50\n",
|
|
|
|
|
|
" 2024-11-07 13:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1337.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-11-12 11:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1280.50 | Comm: 0.13 | PnL: 56.50\n",
|
|
|
|
|
|
" 2024-11-13 09:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1292.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-11-21 21:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1319.00 | Comm: 0.13 | PnL: -27.00\n",
|
|
|
|
|
|
" 2024-11-27 10:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1251.00 | Comm: 0.13\n",
|
|
|
|
|
|
" 2024-12-03 22:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1211.50 | Comm: 0.12 | PnL: 39.50\n",
|
|
|
|
|
|
" 2024-12-13 10:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1165.00 | Comm: 0.12\n",
|
|
|
|
|
|
" 2024-12-16 11:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1124.50 | Comm: 0.11 | PnL: 40.50\n",
|
|
|
|
|
|
" 2024-12-16 14:00:00 | SELL | DCE.jm2501 | Vol: 1 | Price: 1136.00 | Comm: 0.11\n",
|
|
|
|
|
|
" 2024-12-16 14:00:00 | CLOSE_SHORT | DCE.jm2501 | Vol: 1 | Price: 1128.50 | Comm: 0.11 | PnL: 7.50\n",
|
|
|
|
|
|
" 2024-12-19 14:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1152.00 | Comm: 0.12\n",
|
|
|
|
|
|
" 2025-01-02 10:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1175.00 | Comm: 0.12 | PnL: -23.00\n",
|
|
|
|
|
|
" 2025-01-20 09:00:00 | BUY | DCE.jm2505 | Vol: 1 | Price: 1156.00 | Comm: 0.12\n",
|
|
|
|
|
|
" 2025-01-23 21:00:00 | CLOSE_LONG | DCE.jm2505 | Vol: 1 | Price: 1131.00 | Comm: 0.11 | PnL: -25.00\n",
|
|
|
|
|
|
" 2025-02-05 21:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1109.00 | Comm: 0.11\n",
|
|
|
|
|
|
" 2025-02-06 11:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1130.50 | Comm: 0.11 | PnL: -21.50\n",
|
|
|
|
|
|
" 2025-02-11 11:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1123.00 | Comm: 0.11\n",
|
|
|
|
|
|
" 2025-02-13 22:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1083.50 | Comm: 0.11 | PnL: 39.50\n",
|
|
|
|
|
|
" 2025-02-18 13:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1090.00 | Comm: 0.11\n",
|
|
|
|
|
|
" 2025-02-20 14:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1116.00 | Comm: 0.11 | PnL: -26.00\n",
|
|
|
|
|
|
" 2025-02-26 11:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1092.00 | Comm: 0.11\n",
|
|
|
|
|
|
" 2025-03-03 10:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1113.00 | Comm: 0.11 | PnL: -21.00\n",
|
|
|
|
|
|
" 2025-03-05 10:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1078.00 | Comm: 0.11\n",
|
|
|
|
|
|
" 2025-03-17 13:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1060.00 | Comm: 0.11 | PnL: 18.00\n",
|
|
|
|
|
|
" 2025-03-17 22:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1061.00 | Comm: 0.11\n",
|
|
|
|
|
|
" 2025-03-18 22:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1035.00 | Comm: 0.10 | PnL: 26.00\n",
|
|
|
|
|
|
" 2025-03-20 11:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1031.00 | Comm: 0.10\n",
|
|
|
|
|
|
" 2025-03-21 14:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1013.50 | Comm: 0.10 | PnL: 17.50\n",
|
|
|
|
|
|
" 2025-03-25 11:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1027.00 | Comm: 0.10\n",
|
|
|
|
|
|
" 2025-03-28 22:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 1004.50 | Comm: 0.10 | PnL: 22.50\n",
|
|
|
|
|
|
" 2025-04-01 11:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 1008.00 | Comm: 0.10\n",
|
|
|
|
|
|
" 2025-04-07 09:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 963.50 | Comm: 0.10 | PnL: 44.50\n",
|
|
|
|
|
|
" 2025-04-07 21:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 985.00 | Comm: 0.10\n",
|
|
|
|
|
|
" 2025-04-08 11:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 964.50 | Comm: 0.10 | PnL: 20.50\n",
|
|
|
|
|
|
" 2025-04-15 11:00:00 | SELL | DCE.jm2505 | Vol: 1 | Price: 904.00 | Comm: 0.09\n",
|
|
|
|
|
|
" 2025-04-15 14:00:00 | CLOSE_SHORT | DCE.jm2505 | Vol: 1 | Price: 910.00 | Comm: 0.09 | PnL: -6.00\n",
|
|
|
|
|
|
" 2025-04-16 09:00:00 | BUY | DCE.jm2509 | Vol: 1 | Price: 977.00 | Comm: 0.10\n",
|
|
|
|
|
|
" 2025-04-17 21:00:00 | CLOSE_LONG | DCE.jm2509 | Vol: 1 | Price: 949.00 | Comm: 0.09 | PnL: -28.00\n",
|
|
|
|
|
|
" 2025-04-25 13:00:00 | BUY | DCE.jm2509 | Vol: 1 | Price: 965.00 | Comm: 0.10\n",
|
|
|
|
|
|
" 2025-04-28 21:00:00 | CLOSE_LONG | DCE.jm2509 | Vol: 1 | Price: 943.00 | Comm: 0.09 | PnL: -22.00\n",
|
|
|
|
|
|
" 2025-04-30 09:00:00 | SELL | DCE.jm2509 | Vol: 1 | Price: 928.00 | Comm: 0.09\n",
|
|
|
|
|
|
" 2025-05-06 14:00:00 | CLOSE_SHORT | DCE.jm2509 | Vol: 1 | Price: 908.50 | Comm: 0.09 | PnL: 19.50\n",
|
|
|
|
|
|
" 2025-05-08 14:00:00 | SELL | DCE.jm2509 | Vol: 1 | Price: 899.00 | Comm: 0.09\n",
|
|
|
|
|
|
" 2025-05-13 14:00:00 | CLOSE_SHORT | DCE.jm2509 | Vol: 1 | Price: 869.50 | Comm: 0.09 | PnL: 29.50\n",
|
|
|
|
|
|
" 2025-05-13 22:00:00 | SELL | DCE.jm2509 | Vol: 1 | Price: 878.00 | Comm: 0.09\n",
|
|
|
|
|
|
" 2025-05-19 10:00:00 | CLOSE_SHORT | DCE.jm2509 | Vol: 1 | Price: 847.00 | Comm: 0.08 | PnL: 31.00\n",
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"正在计算绩效指标...\n",
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"total_return: 0.007756425999999816, annualized_return:0.005408139042466953, 252 / total_days:0.6980609418282548\n",
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"绩效指标计算完成。\n",
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"--- 回测绩效报告 ---\n",
|
|
|
|
|
|
"初始资金 : 100000.00\n",
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"最终资金 : 100775.64\n",
|
|
|
|
|
|
"总收益率 : 0.78%\n",
|
|
|
|
|
|
"年化收益率 : 0.54%\n",
|
|
|
|
|
|
"最大回撤 : 0.24%\n",
|
|
|
|
|
|
"夏普比率 : 0.63\n",
|
|
|
|
|
|
"卡玛比率 : 2.27\n",
|
|
|
|
|
|
"总交易次数 : 98\n",
|
|
|
|
|
|
"总实现盈亏 : 394.00\n",
|
|
|
|
|
|
"交易成本 : 12.36\n",
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"\n",
|
|
|
|
|
|
"--- 交易详情 ---\n",
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"盈利交易次数 : 24\n",
|
|
|
|
|
|
"亏损交易次数 : 25\n",
|
|
|
|
|
|
"胜率 : 48.98%\n",
|
|
|
|
|
|
"盈亏比 : 1.67\n",
|
|
|
|
|
|
"平均每次盈利 : 43.69\n",
|
|
|
|
|
|
"平均每次亏损 : -26.18\n",
|
2025-07-10 15:07:31 +08:00
|
|
|
|
"正在绘制绩效图表...\n"
|
|
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1400x1000 with 2 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWQAAAPdCAYAAAANmGE2AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4U3X/xvE7SXfL3lOGtmwBEWSJLAUcCKi4t4gK6qOPIvoT3PCoOHFvUVEUcTIEFJS9ZRUQECmbUkZ30+T8/jiepKF7Jm3fr+viSpqcnPNNchKSO5/z+doMwzAEAAAAAAAAACh1dn8PAAAAAAAAAAAqCwJZAAAAAAAAACgjBLIAAAAAAAAAUEYIZAEAAAAAAACgjBDIAgAAAAAAAEAZIZAFAAAAAAAAgDJCIAsAAAAAAAAAZYRAFgAAAAAAAADKCIEsAAAAAAAAAJQRAlkAQLnVr18/xcTE+Pxr166dLrjgAt1///1as2aNv4eYzc6dO3X33Xere/fuat26tWJiYvT6668XeX379u1TTEyM+vXrl+066/HZt29fcYZcIDk9Fzn9+/bbb0t9LHl55JFHAmIcgagoj823336b42uwW7duGjJkiB588EF99dVXSkpKKsWR+19er8OKbunSpRo/frwuuugide7cWe3atVOvXr10yy236OOPP1ZCQoK/h+hXn3zyiWJiYjRv3rw8l/voo488r6Fp06bluezKlSsVExOjG264Idt11jqKateuXZo0aZIuv/xydevWTW3btlW3bt00cuRITZkyRbt27SryulF8a9asUUxMjJ5//nl/DwUAUExB/h4AAADF1blzZ51xxhmSpFOnTmnz5s2aM2eO5s6dq3HjxumWW24p9TF8++23Gj9+vIYNG6bJkyfnuExKSopGjRql/fv3e0ILh8Oh1q1bl/r4ykrW5yInTZs2LcPRFFxBnj/kLiIiQhdddJEkye12KzExUfv27dPs2bP1008/afLkyfrPf/6jG264QTabzc+jRUlISEjQgw8+qGXLlkmSGjVqpG7duikiIkJHjx7V+vXrtWzZMr366qv6+OOPdfbZZ/t5xGUvISFBU6dOVfv27T2vj9x88803nvMzZ87MMWwtTZmZmXr++ec1bdo0ud1uVa9eXe3atVP16tWVmJioLVu2aMOGDXr//ff12GOP6frrry/T8VnK23v166+/rqlTp2rMmDEaO3ZssdfXpUsXXXDBBfr000911VVXqVmzZsUfJADALwhkAQDl3pVXXqnhw4d7/k5PT9eECRP03Xff6YUXXtAFF1yg5s2b+3GEpk2bNmn//v3q1KmTvvzyy1Lf3scffyyn06l69eqV+rYspz8XgeaBBx7QHXfcobp16/p7KBVKjRo1cgxHjhw5ovfff1+ffvqpnn32WR06dEgPP/ywH0aIkpSYmKhrr71Wf//9t1q0aKGnn35aXbp08VkmIyNDs2bN0uuvv66jR4/6aaT+NXXqVJ06dSrfIG7Dhg3auXOnqlatqszMTMXGxmrLli1q27ZtGY1UeuihhzR79mxFRUXpscce09ChQ+VwODzXG4ahpUuX6qWXXtI///xTZuNCdmPHjtWiRYv04osvaurUqf4eDgCgiGhZAACocEJDQzVhwgRFRETI5XJp/vz5/h6SJOngwYOSVGYVLU2bNlXLli0VHBxcJtsrD+rWrauWLVuqSpUq/h5KpVC3bl09+uijevzxxyVJH3zwQUC2EkHhPP300/r777/VqFEjTZ8+PVsYK0khISEaOXKkvvvuO7Vo0cIPo/SvU6dOadasWapXr5569+6d57JWdezFF1+sQYMG+VxWFr755hvNnj1bwcHB+vDDDzV8+HCfMFaSbDabevXqpa+++kpDhgwps7Ehu3bt2qlVq1ZauHBhmbQkAgCUDgJZAECFFBkZ6amKPf0Lyx9//KE777xT3bt397QOuP/++7Vp06Yc13XDDTcoJiZGK1eu1Jo1azR69Gidd955atWqlb799lv169dP48ePlyTNmjXLp5/mDTfc4On3N27cuByXyerEiRN66aWXdPHFF+vss89Wp06dNHz4cL333ntKS0sr1GOQVw/Z1NRUvfvuuxo2bJg6deqks88+WxdffLFefvllnTx5slDbKa6dO3fq3nvvVbdu3dShQwddcskl+uCDD+RyuXK9D/n1Scz6nGWVU5/U/J4/t9ut/v37KyYmRuvXr891m0888UShevslJSVpxowZGjNmjC688EJ17NhRHTt21KWXXqqXX35Zp06dyvF2WR+TFStW6NZbb9W5556rDh06aNiwYfruu+9y3eaJEyf07LPPqm/fvp5+y0899ZROnDhRoDEX1XXXXaf27dtLkt5//32f66w+tI888ohnfAMGDFC7du18DttetmyZnn76aQ0dOlTdunVTu3btdP755+v+++/Xxo0bs23z008/VUxMjJ555pls191xxx2KiYlRz549ZRiGz3XfffedYmJicqzk/e2333T99derU6dOOuecc3TttddqwYIF+d7/Xbt2afz48Z7HvWvXrrrppps0e/bsUh131l6jTqdT7777ri6++GJ16NBB3bp105gxYwrdEzQuLk4//fSTJGn8+PGqXr16nsvXrl3bJ5DNr1dx1v0ht8tz2k/++OMPxcTEaPDgwbmOJTMzUz179lRMTIy2bdvmc11aWpo+/PBDXXXVVerSpYunzcDzzz+v48eP53kfc7sfKSkpGjp0qOz23L9ypaSkePaDK664QiNGjJAk/fTTT0pPTy/0dgvLMAy9/fbbkqSrr74639YSwcHB6tSpU7bLN27cqPvuu0+9evVSu3bt1L17d40ePVpLly7NcT1Z94O4uDg99NBD6tmzp9q1a6cBAwbo5ZdfVkZGhs9t8nuvtuT3f7ZU9PdfydyPvvnmG918880+70U333yzT//fmJgYTwXr1KlTfcabdf8+cuSInnnmGV100UVq3769zj77bPXp00c33XSTPvjggxzHMGzYMLndbk2fPj3XcQIAAhstCwAAFZY1kVBISIjnsldeeUVvvfWWbDabOnXqpIYNG2rXrl2aM2eOfvnlFz311FO64oorclzf3Llz9eWXX6pFixbq0aOHTp48qZCQEF100UXasGGD1q1bp6ZNm+qcc87x3KZFixaqXbu2hg0bpn/++SfHZSxxcXG66aabtH//ftWsWVN9+vSR0+nUypUr9eKLL2rOnDn66KOPVK1atWI9LidOnNDNN9+s2NhYRUVF6bzzzlNwcLBWrVqlt99+Wz/99JM++eQTNW7cuFjbKYg1a9bojjvuUEpKipo0aaKePXvq+PHjevnll/Xnn3+W+vYl5fv82e12XX/99Zo8ebI+++yzHMOIpKQkff/997Lb7br22msLtN1t27bp8ccfV82aNdW8eXO1bdvW0wP57bff1pw5c/TVV1+pRo0aOd5+5syZeuutt9SmTRv17t1b+/fv14YNGzRu3DjPc5xVfHy8rrvuOu3Zs0fVqlVT37595Xa79eOPP+qPP/7QmWeeWfAHrQguu+wybdq0SStXrlRmZqaCgnw/hh4/flwjRoxQYmKizjnnHLVt29anunvixIk6ePCgzjrrLHXu3FlBQUHavXu35syZo/nz5+ull17y6dPZo0cPSfL0OLU4nU5PlW58fLy2b9+uVq1aea63lrdub/n44481adIkSVKHDh3UtGlT7dmzR/fcc0+efaoXLVqke++9V+np6WrevLkuvPBCHTt2TKtXr9aKFSu0ZMkSPffcc6U2buu2o0aN0vr169WlSxe1bNlSGzdu1Pz587Vy5UrNmjWrwK/33377TS6XS1WrVvXLJGa57Sc9e/ZU/fr1tXv3bm3YsEEdO3bMdtvff/9d8fHxatu2rc9jd/jwYd1+++3asWOHqlevrvbt2ysyMlJbt27VBx98oLlz52ratGlq1KhRgcdpBfU5PR9ZzZ49W8nJyZ4J8STzKIo9e/bol19+0aWXXlrgbRbF9u3bFRcXJ8kM+YpixowZmjhxotxut9q0aaNu3bpp//79+u233/Tbb79p7NixGjNmTI6
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1400x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "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1DGzZ8/m9ddfZ/HixeTn55OSksKIESO45pprGD58eJ3j3R+n08mAAQPYsmWL/bpD3d5rTz/9NM888wzXX399zErWDRs28MorrzB79mx27tyJ0+mkU6dOjBo1iosvvpjs7OyI8fV5Turi9ddfx7IsJk6cGLXPsiyee+45AH7+858zdOjQWs/ldrtjvu5Lly7lxRdfZMGCBfbfaejQoUyaNIljjjkmavwdd9zB9OnTefjhhznyyCN56qmnmDVrFgUFBXTq1IkzzzyTX//61zG/ZIDgZ+arr77KvHnz2LNnDwkJCXTq1IljjjmGSy+9lK5du9pj//e///HNN9+wZMkSdu3aRXl5Oe3bt2f06NH84he/4LDDDos4d3gf1meeeYZnnnnGXp84cSJTpkyx1/1+P9OnT+eDDz5g9erVlJaW0qFDB4499lgmT55M586dI849Z84cLrvsMkaNGsVLL73E1KlT+c9//sOWLVtISEjgyCOP5Oabb6ZPnz5R9zxr1iy+/PJL5s+fz86dOykpKSEzM5MRI0Zw1VVXcfjhh0eMr+9nyGeffcY777zDihUrKC4uJiMjg9GjRzN58mT69u0b8++waNEinn32WRYvXkwgEKB3795cfPHFnHfeeTHHH6h27drZy36/P2Lf3r17+eijj5g5cybr1q0jNzcXl8tFr169OO2007j88stjfvaH/zPsvffe4+2332bt2rUUFxfz5Zdf0q1btwZ93p9zzjl8+eWXvP766zE/20RE5NCipK2IiEgj+e6775g6dSo9evTgmGOOYc+ePSxYsIBHHnmEHTt28Ic//CFifFlZGVdccQWLFy8mMTGRsWPHEhcXx3fffcfXX3/N8ccfX+O1XnnlFaZMmYJpmgwYMIDDDz+c3Nxc5syZw3fffccNN9zA9ddfH/PYqVOn8tprrzF48GCOPfZYdu/eHVUhF+6iiy7i+eef58MPP+R3v/sdqampUWNef/11AC688EJcrrr/68VTTz3F3/72N4YPH864ceNYv349ixYt4tprr+Xpp5+OShquXbuWSy+9lH379tGhQwfGjx9PWVkZU6dO5YcffsA0zTpfu7pPPvmEkpISe6IpgF69erFx40b+97//cfbZZ0cd88wzz/D000/jcrkYPnw4HTt2pKioiB07dvDuu+/St29fO2lbVlbGxRdfzE8//URmZiZHHXUUiYmJ7Nmzhw0bNvC3v/2NK6+8MuI/4teuXcs111zDjh07aN++PUcccQQul4tly5bx17/+lf/973+8+uqrpKSkAHDqqaeyePFiFi5cSI8ePTjiiCPsc1VPMsVSWFjI/PnzAWIm6w7Eli1buPzyy9m2bRuZmZmMGzcOn8/HnDlzePTRR/n000+ZOnUqaWlp9jHTp0/n97//PQCHH344o0ePpry8nF27dvHJJ5+QkZERldh45JFHeOmll3A4HAwePJgjjjiCHTt28OWXXzJjxgzuv/9+zj333Ea7r+LiYoCYicL6vtdCPvzwQ+688068Xi9dunRh3LhxmKbJli1bePPNN8nKyopI2tb3OamLL7/8EoCjjz46at/q1avZsmUL0PDn5O233+aee+7BNE0GDhzI6NGj2bZtGzNmzGDGjBm1foatXLmSBx98kLS0NI488kgKCgpYuHAhzz33HGvXruXZZ5+NOua
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
|
"text": [
|
|
|
|
|
|
"图表绘制完成。\n",
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"{'初始资金': 100000.0, '最终资金': np.float64(100775.64259999999), '总收益率': np.float64(0.007756425999999816), '年化收益率': np.float64(0.005408139042466953), '最大回撤': np.float64(0.002385240209070635), '夏普比率': np.float64(0.6292214065062186), '卡玛比率': np.float64(2.267335181547243), '总交易次数': 98, '交易成本': 12.3574, '总实现盈亏': 394.0, '胜率': 0.4897959183673469, '盈亏比': 1.6687356760886174, '盈利交易次数': 24, '亏损交易次数': 25, '平均每次盈利': 43.6875, '平均每次亏损': -26.18, 'initial_capital': 100000.0, 'final_capital': np.float64(100775.64259999999), 'total_return': np.float64(0.007756425999999816), 'annualized_return': np.float64(0.005408139042466953), 'max_drawdown': np.float64(0.002385240209070635), 'sharpe_ratio': np.float64(0.6292214065062186), 'calmar_ratio': np.float64(2.267335181547243), 'total_trades': 98, 'transaction_costs': 12.3574, 'total_realized_pnl': 394.0, 'win_rate': 0.4897959183673469, 'profit_loss_ratio': 1.6687356760886174, 'winning_trades_count': 24, 'losing_trades_count': 25, 'avg_profit_per_trade': 43.6875, 'avg_loss_per_trade': -26.18}\n"
|
2025-07-10 15:07:31 +08:00
|
|
|
|
]
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4U2Ubx/FvdvcGyt5LQUCRjSiKijgRNy7EDbjnqwKKKE4EHCi4EByv63XgwIWAiiKCONmbFkpLdzPP+0eaQGkpKbRNx+9zXb2uNHlyznPSnCa5c9/3YzIMw0BERERERERERKQamcM9ARERERERERERqX8UlBIRERERERERkWqnoJSIiIiIiIiIiFQ7BaVERERERERERKTaKSglIiIiIiIiIiLVTkEpERERERERERGpdgpKiYiIiIiIiIhItVNQSkREREREREREqp2CUiIiIiIiIiIiUu0UlBIREZEyXXrppVx66aXhnsZhqQvHUJ8sXbqUjh07snTp0krdbseOHZk+fXqlbrOm2/+5v3XrVjp27Mj7779frfO4++67GTx4cLXuU0REag8FpURERKTS3H333XTs2LHUz6mnnlru/b788ks6duzIf//73wOOWbJkCR07duT111+v7GnXKU6nk1dffZXzzjuPY445hq5du3LKKafw4IMPsmHDhnBPr8osXLiwxgWe9j8Pjj76aEaOHMl3330X7qnVOJdeemmJx6pXr16ce+65vPvuu/h8vgpv7/3336djx46sWrWqCmYrIiKVxRruCYiIiEjNNHv27EO6n91uZ9KkSSWui42NLfc+xx9/PLGxsXz88cecd955ZY755JNPsFgsDBs27JDmVR9kZmYyevRo/vzzT0444QROP/10oqKi2LBhA/Pnz+edd97hjz/+CPc0q8TChQuZO3cuY8eOLXXb77//jsViCcOsoH///px11lkYhsH27dt58803ue6663jppZcYOHBgtc2jadOm/P7771itNfftf2pqKrfeeisAWVlZfPjhh/znP/9h48aN3H777WGenYiIVIWa+6okIiIila6goICoqKiQxtrt9kPah9Vq5ayzzqrQfex2O6eccgrvv/8+6enpNGrUqMTtTqeTBQsW0K9fP5KTkw9pXvXBPffcw99//820adM45ZRTStx288038/TTT4dpZuHlcDjCtu9WrVqVOB9OOeUUTjvtNF5//fVqDUqZTKawPg6hiI2NLfFYXXDBBZx66qnMnTuXm266CZvNFsbZiYhIVVD5noiISB01ffp0OnbsyNq1a7nttts49thjufjiiwHYtWsX99xzD8cddxxdunRhwIABXH/99WzdujV4/8Ppx+T1esnLy6vQfc4880x8Ph/z588vddt3331Hbm4uZ5xxBgDvvfcel112GX379qVLly6cdtppzJs376D7CJT07HuccOBeRitXruSqq67imGOOoVu3bowcOZJff/213H1kZGRwxBFHMGPGjFK3rV+/no4dO/LGG28A4Ha7mTFjBieffDJdu3ald+/eXHTRRSxZsuSgx7K/lStX8t133zFixIhSASnwB/7uuuuu4O8H+vvu3wMo0Ito9uzZzJ07lxNPPJFu3boxatQoduzYgWEYPPvssxx33HEcddRRXH/99ezZs6fENg/U02nw4MHcfffd5R7XsmXLGDduHMcffzxdunRh0KBBTJ48maKiohJznjt3bnBfgZ+y9v/555/TsWNHfv7551L7euutt+jYsSOrV68OXrdu3TrGjRtHr1696Nq1K8OHD+frr78ud87ladu2LYmJiWzevLnE9S6Xi2nTpjFkyJDgcT722GO4XK4S4w71ub9/T6nAc76sn/17QC1cuJCLL76Y7t2706NHD6655hrWrFlTah9fffUVp59+Ol27duX0009nwYIFFX14SoiMjKRbt24UFBSQmZkJ+P+WDz74YHBfXbp0YdiwYXz//feHtS8REQkPZUqJiIjUcTfddBMtW7bklltuwTAMAMaOHcvatWsZOXIkTZs2JTMzkyVLlrBjxw6aNWt2WPsrLCzkmGOOobCwkPj4eIYNG8btt99OdHR0ufc79thjSU1N5eOPP+bKK68scdsnn3xCZGQkJ510EgBvvvkm7du3Z/DgwVitVr799lsmTpyIYRhccsklhzX/gB9//JGrr76aLl26MGbMGEwmE++//z6XX3458+bN46ijjirzfikpKRx77LF89tlnjBkzpsRt8+fPx2KxBHtszZgxg5kzZ3Leeedx1FFHkZeXxx9//MGff/5J//79KzTfb775BqDCWWqh+vjjj3G73Vx66aXs2bOHWbNmcfPNN9OnTx+WLl3K1VdfzaZNm3jjjTeYMmUKjzzySKXs9/PPP6eoqIiLLrqIhIQEfv/9d9544w3S0tKYNm0a4M+o2blzJ0uWLOGxxx4rd3vHH388UVFRfPbZZ/Tq1avEbfPnz6d9+/Z06NABgDVr1nDRRRfRqFEjrr766uD9brzxRqZPn86QIUMqfDy5ubnk5OTQokWL4HU+n4/rr7+eX3/9lfPPP5+2bduyevVqXnvtNTZu3Mhzzz0XHFtZz/22bduWeqxyc3N59NFHSUpKCl734YcfcvfddzNgwABuv/12CgsLefPNN7n44ov54IMPgv8vFi9ezNixY2nXrh233XYbWVlZ3HPPPaSmplb4MdrX1q1bsVgsxMXFBa/79ddf+fLLL7n44ouJjo5mzpw5jBs3jm+//ZbExMTD2p+IiFQvBaVERETquE6dOvHkk08Gf8/JyeG3337jzjvv5Kqrrgpef+211x72vho0aMDo0aM54ogjMAyDRYsWMW/ePP755x/mzJlTbj8bs9nMsGHDmD17Nhs2bKB169YA5OXlsXDhQoYMGRIMbL3xxhtEREQE7zty5EiuuuoqXnnllUoJShmGwYQJE+jduzezZs3CZDIBcOGFFzJs2DCmTp3Kyy+/fMD7n3baaTzwwAOsXr06GOAA+Oyzzzj22GNJSUkB/BlggwYN4qGHHjrsOa9btw6gxP4qU3p6Ol9++WWwP5jP52PmzJkUFRXx3nvvBf+2WVlZfPzxx0ycOPGQS0D3dfvtt5f4W19wwQW0bNmSp556iu3bt9OkSRN69OhBq1atWLJkyUGDchEREQwePJgvvviC++67L9hrateuXfzyyy8lAokPP/wwjRs35r333gsey8UXX8xFF13EE088EVJQyul0BrN8tm/fztSpU/F6vSWy2T7++GN++OEH5syZQ8+ePYPXt2/fnvHjx7N8+XKOPvpooPKe+ykpKSUeK8MwuP7667HZbDz66KMA5Ofn8/DDD3PeeeeVeI6ec845nHrqqcycOTN4/RNPPEFycjLz5s0LPkd69erFqFGjaNq0aUhz8nq9wccqKyuLN998M9gfLTIyMjhu3bp1zJ8/PxjY6927N2eddRaffvopI0eODPkxEBGR8FP5noiISB134YUXlvg9IiICm83Gzz//THZ2dqXu67bbbuP222/ntNNOY9iwYTz66KPccsstLF++nC+++OKg9z/zzDMBf2ZUwBdffIHT6QyW7gWOISA3N5fMzEx69erFli1byM3NPezj+Pvvv9m4cSNnnHEGWVlZZGZmkpmZSUFBAX379uWXX34pd0WwIUOGYLVaS5Qirl69mrVr13LaaacFr4uLi2PNmjVs3LjxsOccKJc8WEbaoTr11FNLNKwPZIqdeeaZJYKNRx11FG63m/T09ErZ775/60AZV48ePTAMg7/++uuQtjl06FB2795dooTviy++wOfzBf8+e/bs4aeffmLo0KHk5eUFnwNZWVkMGDCAjRs3hnSM7777Ln379qVv376ce+65/PTTT4wePbpENuDnn39O27ZtadOmTXA/mZmZ9OnTB6BEWWlVPfefffZZvv32Wx599FHatWsHwA8//EBOTg7Dhg0rMS+z2Uy3bt2C89q5cyd///0355xzTonnSP/+/YPbCsX69euDj9Vpp53GG2+8wfHHH8/kyZNLjOvXr1+JTLNOnToRExPDli1bDvn4RUQkPJQpJSIiUsftX45nt9u
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "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v87WrVuZOnUq4M+o2b59O4sXLy53CemeBg4cSGxsLPPmzaNPnz6lrps7dy4dO3akU6dOAKxcuZLzzjuPjIwMLr/88uDtrrnmGp588kkGDx68z/cnPz+fvLw8WrVqFTzm8/m46qqr+OWXXzj77LNp3749//77L6+88gpr167l6aefDratrud++/btyzxW+fn5PPTQQ6SmpgaPffjhh9x6661kZmZy4403UlRUxJtvvsn555/PBx98EHy9+Pbbbxk7diwdOnTghhtuIDc3l9tuu63KYHRVNm7ciMViITExMXjsl19+4fPPP+f8888nLi6O1157jXHjxvHVV1+RkpJyQOcTEZHapaCUiIhIhOvSpQuPPfZY8Pe8vDx+/fVXbr75Zi677LLg8dGjR1f7uWfPnh1cmlcVs9nMsGHDeOGFF1izZg1t27YFoKCggIULFzJ48GDi4uIAeP3114mOjg7edsSIEVx22WW89NJL1RKUMgyDu+++m759+zJjxgxMJhMA5557LsOGDWPKlCm8+OKLFd7+xBNP5K677uLff/8NBjgA5s2bx+GHH056ejrgzwAbMGAA99133wGP+b///gModb7qtG3bNj7//HMSEhIAfyBl+vTpFBcXM2vWrGCtotzcXGbPns0999yzX0tA93bjjTeWmutzzjmH1q1bM3nyZDZv3kyzZs3o1asXbdq0YfHixVUG5aKjoxk0aBCfffYZd9xxR7DW1I4dO/jpp59KBRIfeOABmjZtyqxZs4L35fzzz+e8887j0UcfDSko5XQ6g1k+mzdvZsqUKXi93lJ/E7Nnz+a7777jtddeo3fv3sHjHTt2ZMKECSxdupRDDz0UqL7nfnp6eqnHyjAMrrrqKmw2Gw899BAAhYWFPPDAA5x11lmlnqOnn346Q4YMYfr06cHjjz76KGlpabzxxhvB50ifPn249NJLad68eUhj8nq9wccqNzeXN998M1gfLSYmJtjuv//+Y+7cucHAXt++fTn11FOZM2cOI0aMCPkxEBGR8NPyPRERkQh37rnnlvo9Ojoam83Gjz/+yK5du2rsvAUFBcGgy55ZDpUJZFR98sknwWOfffYZTqczuHQPKPWhPD8/n5ycHPr06cOGDRvIz88/4LH/9ddfrF27lpNPPpnc3FxycnLIycnB4XDQr18/fvrpp0p3BBs8eDBWq7XUUsR///2XVatWceKJJwaPJSYmsnLlStauXXvAYy4oKAAIBu6q25AhQ4LBBiCYKXbKKaeUKp59yCGH4Ha72bZtW7Wcd8+5Dizj6tWrF4Zh8Oeff+5Xn0OHDiU7O7vUEr7PPvsMn88XnJ+dO3fyww8/MHToUAoKCoLPgdzcXDIzM1m7dm1I9/G9996jX79+9OvXjzPOOIMffviBUaNGlcoG/PTTT2nfvj3t2rULnicnJ4cjjjgCoNSy0pp67j/11FN89dVXPPTQQ3To0AGA7777jry8PIYNG1ZqXGazmR49egTHtX37dv766y9OP/30Us+RI488MthXKFavXh18rE488URef/11Bg4cyMSJE0u169+/f6lMsy5duhAfH8+GDRv2+/6LiEh4KFNKREQkwu29HC8qKoobb7yRSZMmceSRR9KjRw8GDhzIaaedRqNGjartvOUFk6rSpUsXOnXqxCeffBLcRe2TTz4hJSW
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAK1CAYAAACEtlRiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FFUXx/HvluymhzQSOqH3JoJIFQFBrLwoKmLFjihYwYKiolhRUEEpoqLYCwhYUBEVFERFEQSklwTSSN/+/rFkIRAgfVN+n+fJw+7MnZk7m8mye+bccw0ej8eDiIiIiIiIiIhICRn93QEREREREREREanaFGASEREREREREZFSUYBJRERERERERERKRQEmEREREREREREpFQWYRERERERERESkVBRgEhERERERERGRUlGASURERERERERESkUBJhERERERERERKRUFmEREREREREREpFQUYBIRESmBUaNGMWrUKH93o0Ls2bOHli1b8vHHH/u7K1JE999/P/379y/TfX788ce0bNmSPXv2lOl+K7PCrv3p06fTsmXLCu9Ly5YtmT59eoUfV0REpKjM/u6AiIhITbF+/Xo+/vhj1q9fz7///ovT6eTff/89YfsPPviAuXPnsmfPHurUqVOkoNbNN9/MqlWr+OmnnwgNDS20zV133cWXX37JypUriYyMLNU5VWe7du1i9uzZ/PTTTxw4cICAgABatGjBkCFDGDFiBIGBgf7uYrmYOXMmzZo1Y8CAAf7uCuANbE2YMMH33GQyER0dTc+ePRk3bhxxcXF+7F3lsmfPHs4++2zfc6PRSFxcHG3btmXMmDG0bt262PscNWoUaWlpLF68uCy7KiIi1ZACTCIiIiUwZ86cYm+zYsUKPvzwQ1q0aEH9+vXZsWPHCdsuXLiQSZMmcc4553Dttdeydu1aHn/8cXJzc7nxxhtPuN0FF1zAd999xzfffMNFF1103Prc3Fy+/fZbevXqpeDSSXz//ffccccdWCwWLrzwQlq0aIHD4eC3337jmWeeYevWrTz22GP+7ma5mDVrFuecc85xAaYLL7yQoUOHYrFY/NKvsWPHUr9+fex2O3/88QeffPIJv/32G4sXL8ZqtVZYP2655ZaT/g1WBueddx59+vTB7Xbz33//8e677/LDDz/w/vvvlyjIJCIiUhQKMImIiByWk5NDcHBwkdqW5Ev25Zdfzg033EBgYCCTJ08+YYApLy+PF154gX79+vHSSy8BcOmll+J2u3n11VcZMWIEERERhW7bv39/QkJCWLRoUaEBpuXLl5OTk8MFF1xQ7P7XFLt372bcuHHUrVuX+fPnU7t2bd+6kSNHsnPnTr7//nv/ddBPTCYTJpPJb8fv06cP7du3B+CSSy4hMjKS119/neXLl3PuuedWWD/MZjNmc+X+CN2mTRsuvPBC3/MuXbpwyy238O677zJ58mQ/9kxERKoz1WASEZEaKb+OytatW7nrrrs4/fTTueKKKwA4ePAgEyZMoE+fPrRr145evXpxyy23FKg9U5IaTDExMUUaVvXLL7+Qnp7u60++kSNHkpOTc9LgRmBgIIMGDWL16tWkpKQct37x4sWEhITQv39/0tPTmTp1Kueffz6dO3emS5cujB49mk2bNp2yjyc6/8Jq/7jdbt544w2GDh1K+/btOfPMM3n44Yc5dOjQSY8xZ84cWrZsyd69e49b99xzz9GuXTvfPnbs2MHtt99Oz549ad++PX369GHcuHFkZmae8lyONXv2bHJycnjiiScKBJfyNWrUiKuvvho4eX2qY2vm5F9z27dv5+677+a0007jjDPOYNq0aXg8Hvbv388tt9xCly5d6NmzJ3Pnzi2wvxPVQPrll19o2bIlv/zyy0nPa86cOVx22WV0796dDh06MGzYMJYtW3Zcn3Nycvjkk09o2bIlLVu25P777y/0+DfddFOB4VhHGzFiBMOGDSuw7LPPPmPYsGF06NCBbt26MW7cOPbv33/SPp9M165dAW9A8Gj//fcfY8eOpVu3brRv355hw4axfPnyAm1Kc+0fW4Pp/vvv971Wx/4c/fu32+289NJLDBw4kHbt2tG3b1+efvpp7HZ7gf3b7XamTJnCGWecQefOnbn55ptJTEws9utztDPOOAPA97vL/13+9ttvPPnkk5xxxhl06tSJ2267jdTU1FIdS0REaq7KfftFRESknN1xxx00atSIcePG4fF4ALj99tvZunUrV155JfXq1SM1NZWffvqJ/fv3U79+/XLv0z///ANAu3btCixv27YtRqORjRs3FshOONb555/PJ598wtKlS7nyyit9y9PT0/nxxx8ZOnQogYGBbNmyhW+++YbBgwdTv359kpOTee+997jyyiv54osvyqy2zcMPP8wnn3zCsGHDGDVqFHv27GHBggX8888/vPvuuwQEBBS63ZAhQ3jmmWdYunQpo0ePLrBu6dKl9OzZk4iICOx2O9dffz12u50rr7ySmJgYkpKS+P7778nIyCAsLKxY/f3uu+9o0KABXbp0KfE5n8y4ceNo2rQpd911FytWrODVV1+lVq1aLFy4kDPOOIO7776bRYsWMXXqVNq3b8/pp59eJsd988036d+/P+effz4Oh4MvvviCO+64g1mzZtGvXz8Ann76aR588EE6dOjApZdeCkDDhg0L3d+QIUO47777WL9+PR06dPAt37t3L3/88Qf33nuvb9mrr77Kiy++yJAhQxg+fDipqam8/fbbjBw5kk8//ZTw8PBin09+4PHobbds2cLll19OXFwcN9xwA8HBwSxdupTbbruN6dOnM3DgQMAblCqra3/EiBH06NGjwLKVK1eyaNEioqKiAG+Q9ZZbbuG3337j0ksvpWnTpmzevJn58+ezY8cOXnnlFd+2DzzwAJ9//jnnnXceXbp0YfXq1aUekrdr1y4AatWqVWD5448/Tnh4OGPGjGHv3r3Mnz+fyZMnM23atFIdT0REaiYFmEREpEZr1aoVzz33nO95RkYGv//+O/feey/XX3+9b/lNN91UYX06ePCgr5Dx0SwWC7Vq1eLAgQMn3f6MM84gNjaWxYsXFwgwLVu2DIfDwfnnnw94s1W+/PJLjMYjCc0XXnghQ4YM4cMPP+S2224r9bmsXbuWDz74gGeffdZ3XIDu3bszevRoli1bVmD50erWrUunTp1YsmRJgQDT+vXr2b17N2PGjAG8GSt79uzhxRdfZPDgwb52+euLIysri6SkpBNm5pSFDh06+IYpjRgxgv79+/PUU08xfvx4XyDhvPPOo3fv3nz00UdlFmD68ssvC2TQjRw5kmHDhjFv3jxfgOnCCy/kkUceoUGDBicNYgIMGDAAi8XC0qVLCwSYli5disFgYMiQIYA3EDR9+nTuvPNObr75Zl+7QYMGcfHFF/POO+8UWH4iWVlZpKamYrfb+fPPP5kxYwYWi4WzzjrL1+aJJ56gTp06fPTRR75hrFdccQWXX345zz77rC/AVJbXfufOnencubPv+c6dO3nsscfo2bMnl112GQCLFi3i559/5q233vJlXgE0b96cSZMmsW7dOrp06cKmTZv4/PPPueKKK5g0aRLg/T3dddddJ50Q4Fi5ubmkpqbidrvZtm0bTz75JECBvw/wBpzmzp2LwWAAvIGwt956i8zMzGIHZkVERDRETkREarT8L4D5AgMDCQgI4Ndffz3lEK7ykpeXd8KsHqvVSl5e3km3N5lMDB06lN9//73AcKrFixcTExPjy7awWCy+L9gul4u0tDSCg4NJSEjwZVGV1rJlywgLC6Nnz56kpqb6ftq2bUtwcPAph3UNGTKEDRs2+DIwwBvAsFgsviLU+bPl/fjjj+Tm5paqv1lZWQCEhISUaj8nM3z4cN9jk8lEu3bt8Hg8BZaHh4eTkJBw3PCv0jg6uHTo0CEyMzM57bTTSvy7Dg0NpU+fPixdutSX/QewZMkSOnXqRN26dQH4+uuvcbvdDBkypMA1EBMTQ6NGjU55DeS75ppr6NGjB3379mXs2LEEBQXx6quvEh8fD3gz9FavXs2QIUN8wajU1FTS0tLo1as
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd0VOXWx/Hv9PQeQgkldJAugnTEiogFsYMVFRWxoNhFUVBUFAQLCiIiil59vUr1KipiwQaIBQSklwRSIH36+8eQgZAEJpBkSPL7rJW1JmeeOWef5GQys2c/+zF4vV4vIiIiIiIiIiIiVcgY7ABERERERERERKT2UVJKRERERERERESqnJJSIiIiIiIiIiJS5ZSUEhERERERERGRKqeklIiIiIiIiIiIVDklpUREREREREREpMopKSUiIiIiIiIiIlVOSSkREREREREREalySkqJiIiIiIiIiEiVU1JKREREGD58OMOHDw92GFVi586dtGrViv/7v/8LdigSoAcffJABAwZU6D7/7//+j1atWrFz584K3e/JrLRrf9q0abRq1arKY2nVqhXTpk2r8uOKiMjJRUkpEREROS5r167liSeeYMiQIZxyyikBv7H99ddfadWqFa1atSIzM/OoY0eOHEnHjh3Jzc0tc8yYMWNo164dWVlZ5Yq/ttm+fTuPP/44Z555Ju3bt6dLly5ceeWVzJkzh8LCwmCHV2lef/11vvzyy2CH4VeUDCv6atu2LX369OHBBx8kLS0t2OGdVIqSaEVfbdq0oX///txxxx2sW7fuuPY5fPhwLrjgggqOVEREjpc52AGIiIhI8M2aNavcj1m+fDkfffQRLVu2JDk5ma1btx7zMR6Ph6effpqwsDDy8/OPOf7CCy/k66+/5ssvv+Tiiy8ucX9BQQFfffUVvXv3JjY2ttznUFt888033HXXXVitVi666CJatmyJ0+nkt99+4/nnn2fTpk089dRTwQ6zUsyYMYNzzz2Xs846q9j2iy66iEGDBmG1WoMS1+jRo0lOTsbhcLBmzRo++eQTfvvtNxYuXIjNZquyOG677TZuueWWKjve8bjgggvo27cvHo+Hf//9l/fff59vv/2WDz/8kDZt2gQ7PBEROQFKSomIiNRQ+fn5hIWFBTT2eN6YX3XVVdx8882EhIQwfvz4gJJSH3zwAXv27GHo0KG88847xxw/YMAAwsPDWbBgQalJqWXLlpGfn8+FF15Y7vhrix07dnDPPfdQv3595syZQ506dfz3XXPNNWzbto1vvvkmeAEGiclkwmQyBe34ffv2pX379gBcdtllxMbG8uabb7Js2TLOP//8KovDbDZjNp/cbwnatm3LRRdd5P++S5cu3Hbbbbz//vuMHz8+iJGJiMiJ0vQ9ERGRGqCoL8ymTZsYM2YMp512GldffTUA+/bt46GHHqJv3760a9eO3r17c9tttxXrpXM8PaUSEhIICQkJePz+/fuZMmUKo0ePJioqKqDHhISEcM4557By5UoyMjJK3L9w4ULCw8MZMGAA+/fvZ9KkSQwePJjOnTvTpUsXRowYwfr16495nLLOv7ReRh6Ph7fffptBgwbRvn17evbsyeOPP86BAweOeoxZs2bRqlUrdu3aVeK+yZMn065dO/8+tm7dyp133kmvXr1o3749ffv25Z577iEnJ+eY53KkmTNnkp+fz4QJE4olpIo0btyY6667Djh6v60jewAVXXNbtmzhvvvu49RTT+X0009nypQpeL1e9uzZw2233UaXLl3o1asXb731VrH9ldXT6aeffqJVq1b89NNPRz2vWbNmceWVV9K9e3c6dOjAkCFDWLp0aYmY8/Pz+eSTT/xTwB588MFSj3/rrbdy5plnlnqsK664giFDhhTb9umnnzJkyBA6dOhAt27duOeee9izZ89RYz6arl27Ar4k4uH+/fdfRo8eTbdu3Wjfvj1Dhgxh2bJlxcacyLV/ZE+pBx98sNiUucO/Dv/9OxwOXn75Zc4++2zatWtHv379eO6553A4HMX273A4mDhxIqeffjqdO3dm5MiRpKamlvvnc7jTTz8dwP+7K/pd/vbbbzzzzDOcfvrpdOrUiTvuuOOYU4RFRCS4Tu6PRURERKRc7rrrLho3bsw999yD1+sF4M4772TTpk0MGzaMBg0akJmZyffff8+ePXtITk6ustimTp1KYmIiV155Ja+++mrAjxs8eDCffPIJS5YsYdiwYf7t+/fv57vvvmPQoEGEhISwceNGvvzyS8477zySk5NJT0/ngw8+YNiwYSxatIikpKQKOY/HH3+cTz75hCFDhjB8+HB27tzJvHnz+Pvvv3n//fexWCylPm7gwIE8//zzLFmyhBEjRhS7b8mSJfTq1Yvo6GgcDgc33XQTDoeDYcOGkZCQQFpaGt988w3Z2dlERkaWK96vv/6ahg0b0qVLl+M+56O55557aNasGWPGjGH58uW89tprxMTEMH/+fE4//XTuu+8+FixYwKRJk2jfvj2nnXZahRz3nXfeYcCAAQwePBin08miRYu46667mDFjBv379wfgueee49FHH6VDhw5cfvnlADRq1KjU/Q0cOJAHHniAtWvX0qFDB//2Xbt2sWbNGsaOHevf9tprrzF16lQGDhzI0KFDyczM5N133+Waa67hv//9b8BJ18MVJSsPf+zGjRu56qqrSEpK4uabbyYsLIwlS5Zwxx13MG3aNM4++2zAl8iqqGv/iiuuoEePHsW2rVixggULFhAXFwf4ErO33XYbv/32G5dffjnNmjVjw4YNzJkzh61btxb7+37kkUf47LPPuOCCC+jSpQsrV6484emC27dvByAmJqbY9qeffpqoqChGjRrFrl27mDNnDuPHj2fKlCkndDwREak8SkqJiIjUIK1bt2by5Mn+77Ozs1m9ejVjx47lpptu8m+/9dZbqzSu9evX88EHH/DGG2+Ue8rU6aefTmJiIgsXLiyWlFq6dClOp5PBgwcDvqqYzz//HKPxUCH4RRddxMCBA/noo4+44447Tvg8fv31V/7zn//wwgsv+I8L0L17d0aMGMHSpUuLbT9c/fr16dSpE4sXLy6WlFq7di07duxg1KhRgK8yZufOnUydOpXzzjvPP67o/vLIzc0lLS2tzAqgitChQwf/FKorrriCAQMG8Oyzz3Lvvff6kw8XXHABffr04eOPP66wpNTnn39erFLvmmuuYciQIcyePduflLrooot44oknaNiwYbHpX6U566yzsFqtLFmypFhSasmSJRgMBgYOHAj4kkfTpk3j7rvvZuTIkf5x55xzDpdccgnvvfdese1lyc3NJTMzE4fDwe+//8706dOxWq2cccYZ/jETJkygXr16fPzxx/4ptldffTVXXXUVL7zwgj8pVZHXfufOnencubP/+23btvHUU0/Rq1cvrrzySgAWLFjADz/8wNy5c/0VXgAtWrRg3LhxrFq1ii5durB+/Xo+++wzrr76asaNGwf4fk9jxozhn3/+CTimgoICMjMz8Xg8bN68mWeeeQag2N8H+JJUb731FgaDAfAlz+bOnUtOTk65k7kiIlI1NH1PRESkBil601gkJCQEi8XCzz//fMzpZZVpwoQJ9O3bl969e5f7sSaTiUGDBrF69epiU70WLlxIQkKCv6rDarX635S73W6ysrIICwsjJSWFv//+u0LOY+nSpURGRtKrVy8yMzP9X6eccgphYWHHnHI2cOBA/vrrL3+lB/iSHlar1d+IOyIiAoDvvvuOgoKCE4q3aNXC8PDwE9rP0QwdOtR/22Qy0a5dO7xeb7HtUVFRpKSklJiadiIOT0gdOHCAnJwcTj311OP+XUdERNC3b1+WLFnirzIEWLx4MZ06daJ+/foAfPHFF3g8HgYOHFjsGkhISKBx48bHvAaKXH/99fTo0YN+/foxevRoQkNDee2116hbty7gqwRcuXIlAwcO9CewMjMzycrKonfv3mzdutW/Wl9lXfv5+fmMGjWKqKgoJk+e7E8oL126lGbNmtG0adNiP4OiaXVFP4Ply5cDlJgaWzRdNFDTpk2jR48e9OrVi+H
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAK1CAYAAACEtlRiAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FFXbx/Hv9vROJ6FXAWnSmygKIhbEDlZEVBTFjgVFQcGGggUFURFEH3l8FQQsPIqooNLEhoj0FggJ6dn+/rFkISQhhSSb8vtcF9c1mTkzc2aTYXfvOfd9DF6v14uIiIiIiIiIiEgpGQPdARERERERERERqdoUYBIRERERERERkdOiAJOIiIiIiIiIiJwWBZhEREREREREROS0KMAkIiIiIiIiIiKnRQEmERERERERERE5LQowiYiIiIiIiIjIaVGASURERERERERETosCTCIiIiIiIiIicloUYBIRESmFUaNGMWrUqEB3o0Ls3buXVq1a8d///jfQXZFieuihhxg4cGCZHvO///0vrVq1Yu/evWV63MqsoL/9mTNn0qpVqwrvS6tWrZg5c2aFn1dERKS4zIHugIiISE2xefNm/vvf/7J582b+/vtvXC4Xf//9d4FtC/sCe++99zJmzJhCzzF27FjWrFnDDz/8QFhYWKHH+OKLL1i9ejXR0dElv5AaYvfu3cyZM4cffviBQ4cOYbFYaNmyJUOGDOHKK68kKCgo0F0sF2+88QbNmzfn3HPPDXRXAF9g6+GHH/b/bDKZiI2NpXfv3txzzz3UqVMngL2rXPbu3cs555zj/9loNFKnTh3OOOMMxo0bR5s2bUp8zFGjRpGSksLSpUvLsqsiIlINKcAkIiJSCnPnzi3xPqtWreLjjz+mZcuWNGzYkJ07d56yfe/evbn44ovzrGvbtu0p97nooov45ptv+Prrr7nkkkvybc/OzuZ///sfffr0UXDpFL799lvGjx+P1Wrl4osvpmXLljidTtavX89zzz3Htm3beOqppwLdzXIxe/Zszj///HwBposvvpihQ4ditVoD0q+77rqLhg0b4nA42LRpE5988gnr169n6dKl2Gy2CuvHbbfddsogb2Vw4YUX0q9fPzweD//++y8ffPAB3333HR999FGpgkwiIiLFoQCTiIjIMVlZWYSEhBSrbWm+ZF999dXccsstBAUFMXny5CIDTI0bN84XYCrKwIEDCQ0NZcmSJQUGmFauXElWVhYXXXRRiY5bk+zZs4d77rmH+vXr8+6771K7dm3/tmuvvZZdu3bx7bffBq6DAWIymTCZTAE7f79+/Wjfvj0Al19+OdHR0bz11lusXLmSCy64oML6YTabMZsr90fotm3b5vm/o3Pnztx222188MEHTJ48OYA9ExGR6kw1mEREpEbKraOybds27r33Xs466yyuueYaAA4fPszDDz9Mv379aNeuHX369OG2227LU3umNDWY4uLiSpxWlZOTg91uL3b7oKAgzjvvPNauXcuRI0fybV+6dCmhoaEMHDiQo0ePMm3aNIYNG0anTp3o3Lkzo0ePZsuWLUWep7DrL6j2j8fj4Z133mHo0KG0b9+eXr168fjjj5OamnrKc8ydO5dWrVqxb9++fNteeOEF2rVr5z/Gzp07ufPOO+nduzft27enX79+3HPPPaSnpxd5LSebM2cOWVlZTJkyJU9wKVejRo24/vrrgVPXpzq5Zk7u39yOHTu477776NKlCz169GDGjBl4vV4OHDjAbbfdRufOnenduzdvv/12nuMVVgPpp59+olWrVvz000+nvK65c+dy1VVX0b17dzp06MDw4cNZsWJFvj5nZWXxySef0KpVK1q1asVDDz1U4PlvvfXWPOlYJ7ryyisZPnx4nnWffvopw4cPp0OHDnTr1o177rmHAwcOnLLPp9K1a1fAFxA80b///stdd91Ft27daN++PcOHD2flypV52pzO3/7JNZgeeugh/2t18r8Tf/8Oh4NXXnmFQYMG0a5dO/r378/06dNxOBx5ju9wOJg6dSo9evSgU6dOjB07loMHD5b49TlRjx49APy/u9zf5fr163nmmWfo0aMHHTt25I477iA5Ofm0ziUiIjVX5X78IiIiUs7Gjx9Po0aNuOeee/B6vQDceeedbNu2jZEjR9KgQQOSk5P54YcfOHDgAA0bNqywvn3yyScsXLgQr9dLs2bNuO222xg2bFiR+w0bNoxPPvmE5cuXM3LkSP/6o0eP8v333zN06FCCgoL4559/+Prrrxk8eDANGzYkKSmJDz/8kJEjR/L555+XWW2bxx9/nE8++YThw4czatQo9u7dy4IFC/jzzz/54IMPsFgsBe43ZMgQnnvuOZYvX87o0aPzbFu+fDm9e/cmMjISh8PBzTffjMPhYOTIkcTFxZGYmMi3335LWloa4eHhJervN998Q3x8PJ07dy71NZ/KPffcQ7Nmzbj33ntZtWoVr7/+OlFRUSxatIgePXpw3333sWTJEqZNm0b79u0566yzyuS87733HgMHDmTYsGE4nU4+//xzxo8fz+zZsxkwYAAA06dP59FHH6VDhw5cccUVACQkJBR4vCFDhvDggw+yefNmOnTo4F+/b98+Nm3axAMPPOBf9/rrr/Pyyy8zZMgQRowYQXJyMu+//z7XXnst//d//0dERESJryc38Hjivv/88w9XX301derU4ZZbbiEkJITly5dzxx13MHPmTAYNGgT4glJl9bd/5ZVX0rNnzzzrVq9ezZIlS4iJiQF8QdbbbruN9evXc8UVV9CsWTO2bt3Ku+++y86dO3nttdf8+z7yyCN89tlnXHjhhXTu3Jm1a9eedkre7t27AYiKisqz/umnnyYiIoJx48axb98+3n33XSZPnsyMGTNO63wiIlIzKcAkIiI1WuvWrXnhhRf8P6elpbFx40YeeOABbr75Zv/6W2+9tUL71alTJ4YMGULDhg05dOgQCxcu5L777iM9Pd0/0qowPXr0oFatWixdujRPgGnFihU4nU5/kKpVq1Z88cUXGI3HBzRffPHFDBkyhI8//pg77rjjtK9j3bp1/Oc//+H555/PExzr3r07o0ePZsWKFYUGzerXr0/Hjh1ZtmxZngDT5s2b2bNnD+PGjQN8I1b27t3Lyy+/zODBg/3tcreXREZGBomJiYWOzCkLHTp08KcpXXnllQwcOJBnn32WCRMm+AMJF154IX379mXx4sVlFmD64osv8oygu/baaxk+fDjz5s3zB5guvvhinnjiCeLj44tMzzz33HOxWq0sX748T4Bp+fLlGAwGhgwZAvgCQTNnzuTuu+9m7Nix/nbnnXcel156KQsXLsyzvjAZGRkkJyfjcDj49ddfmTVrFlarlbPPPtvfZsqUKdSrV4/Fixf701ivueYarr76ap5//nl/gKks//Y7depEp06d/D/v2rWLp556it69e3PVVVcBsGTJEn788Ufmz5/vH3kF0KJFCyZNmsSGDRvo3LkzW7Zs4bPPPuOaa65h0qRJgO/3dO+99xY6IUBBsrOzSU5OxuPxsH37dp555hmAPPcH+AJOb7/9NgaDAfAFwubPn096enqJA7MiIiJKkRMRkRot9wtgrqCgICwWCz///HORKVzladGiRVx//fWcc845XH311SxevJiWLVvy0ksvkZOTc8p9TSYTQ4cOZePGjXnSqZYuXUpcXJx/tIXVavV/wXa73aSkpBASEkKTJk34888/y+Q6VqxYQXh4OL179yY5Odn/74wzziAkJKTItK4hQ4bwxx9/+EdggC+AYbVa/UWoc2fL+/7778nOzj6t/mZkZAAQGhp6Wsc5lREjRviXTSYT7dq1w+v15lkfERFBkyZN8qV/nY4Tg0upqamkp6fTpUuXUv+uw8LC6NevH8uXL/eP/gNYtmwZHTt2pH79+gB89dVXeDwehgwZkudvIC4ujkaNGhX5N5DrhhtuoGfPnvTv35+77rqL4OBgXn/9derWrQv4RuitXbuWIUOG+INRycnJpKSk0KdPH3bu3EliYiJQfn/7WVlZjBs3joiICF544QV/zaoVK1bQrFkzmjZ
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKMAAAK1CAYAAAAUpS2tAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA/qpJREFUeJzs3Xm8jPX7x/HX7Gff7fsu2VOyRUqhRUlUaCOppNCmRAtKUYqK0l7S4tuvCC0q0S60K7LvzuLss8/vj3GG48zhHM45c5b38/E4DzP3fOa+r5kztzNzzee6Pgafz+dDRERERERERESkDBhDHYCIiIiIiIiIiFQdSkaJiIiIiIiIiEiZUTJKRERERERERETKjJJRIiIiIiIiIiJSZpSMEhERERERERGRMqNklIiIiIiIiIiIlBklo0REREREREREpMwoGSUiIiIiIiIiImVGySgRERERERERESkzSkaJiIhUMsOHD2f48OGhDqNM7Nq1ixYtWvC///0v1KFIEd1333307t27RPf5v//9jxYtWrBr164S3W95Fuy1P2fOHFq0aFHmsbRo0YI5c+aU+XFFRKTiMoc6ABEREQktr9fL//3f//HZZ5/x999/k56eTt26denfvz8jRozAZrMVuM/777/PK6+8wq5du6hVq1aREmCjR4/m+++/59tvvyUqKiromAkTJvDpp5+yevVq4uPjS+TxVUY7duxgwYIFfPvttxw4cACLxULz5s3p168fQ4YMISwsLNQhlop58+bRtGlTzj///FCHAviTYBMnTgxcN5lMJCYm0q1bN8aNG0eNGjVCGF35smvXLs4777zAdaPRSI0aNTj99NMZM2YMp512WrH3OXz4cNLS0li6dGlJhioiImVAySgREZFK5uWXXy7W+NzcXCZOnEj79u256qqrSExMZP369cyZM4fvv/+eN954A4PBEBi/aNEipkyZwoUXXsgNN9zA2rVrmTp1Krm5uYwaNarQ41x66aV89dVXfPHFF1x22WVB4/jyyy/p3r27ElHH8fXXX3PHHXdgtVoZMGAAzZs3x+Vy8csvv/Dkk0+yefNmHn300VCHWSrmz5/PhRdeWCAZNWDAAC666CKsVmtI4ho7dix169bF6XSyYcMGPvzwQ3755ReWLl0aNJlbWm655ZbjnoPlwcUXX8w555yD1+vlv//+45133uGbb77hvffeO6mElIiIVExKRomIiFQAOTk5REREFGlscT+QWywW3nnnHTp27BjYNnjwYOrUqRNISHXt2hUAu93O008/Ta9evXj22WcDY71eLy+88AJDhgwhNjY26HF69+5NZGQkS5YsCZqMWrlyJTk5OVx66aXFir8q2blzJ+PGjaN27dq8/vrrVK9ePXDb0KFD2b59O19//XXoAgwRk8mEyWQK2fHPOecc2rRpA8CVV15JfHw8L730EitXrqR///5lFofZbMZsLt9v71u1asWAAQMC1zt27Mgtt9zCO++8wyOPPBLCyEREpCypZ5SIiEg5k9f3ZfPmzUyYMIEzzzyTa665BoCDBw8yceJEzjnnHFq3bk337t255ZZb8vXKKW7PKKvVmi8RladPnz4A/Pfff4FtP/74I4cOHQrEk2fo0KHk5OQcNxESFhbGBRdcwA8//EBKSkqB25cuXUpkZCS9e/fm0KFDzJgxg0suuYQOHTrQsWNHRo4cycaNG0/4eAp7/MF6FXm9Xl577TUuuugi2rRpQ9euXZk8eTLp6enHPcbLL79MixYt2L17d4HbZs2aRevWrQP72LZtG7fffjvdunWjTZs2nHPOOYwbN47MzMwTPpZjLViwgJycHKZNm5YvEZWnQYMGXHfddcDx+2kd2+Mn7zW3detW7rrrLs444wzOPvtsZs+ejc/nY+/evdxyyy107NiRbt268corr+TbX2E9m3788UdatGjBjz/+eNzH9fLLL3PVVVfRuXNn2rZty8CBA1mxYkWBmHNycvjwww9p0aIFLVq04L777gt6/JtvvjlfSdjRhgwZwsCBA/Nt++ijjxg4cCBt27blrLPOYty4cezdu/e4MR9Pp06dAH/y8Gj//fcfY8eO5ayzzqJNmzYMHDiQlStX5htzKq/9Y3tG3XfffYHn6tifo3//TqeTZ599lj59+tC6dWt69uzJE088gdPpzLd/p9PJ9OnTOfvss+nQoQOjR49m3759xX5+jnb22WcDBH53eb/LX375hccee4yzzz6b9u3bc9ttt5GamnpKxxIRkfKjfH91IiIiUoXdcccdNGjQgHHjxuHz+QC4/fbb2bx5M8OGDaNOnTqkpqby7bffsnfvXurWrVuix09OTgbIVzL3119/AdC6det8Y08//XSMRiN///13vlkPx7rkkkv48MMPWb58OcOGDQtsP3ToEGvWrOGiiy4iLCyMTZs28cUXX9C3b1/q1q1LcnIy7777LsOGDeOTTz4psV48kydP5sMPP2TgwIEMHz6cXbt28fbbb/PXX3/xzjvvYLFYgt6vX79+PPnkkyxfvpyRI0fmu2358uV069aN2NhYnE4nI0aMwOl0MmzYMJKSkti/fz9ff/01GRkZREdHFyver776inr16gVNHpaEcePG0aRJEyZMmMCqVat44YUXiIuLY9GiRZx99tncddddLFmyhBkzZtCmTRvOPPPMEjnuG2+8Qe/evbnkkktwuVx88skn3HHHHcyfP59evXoB8MQTTzBp0iTatm3L4MGDAahfv37Q/fXr1497772X3377jbZt2wa27969mw0bNnDPPfcEtr3wwgs888wz9OvXj0GDBpGamspbb73F0KFD+b//+z9iYmKK/XjykpRH33fTpk1cffXV1KhRg5tuuomIiAiWL1/Obbfdxpw5cwLJ3507d5bYa3/IkCF06dIl37bVq1ezZMkSEhISAH9C9pZbbuGXX35h8ODBNGnShH///ZfXX3+dbdu28fzzzwfu+8ADD/Dxxx9z8cUX07FjR3744YdTLgvcsWMHAHFxcfm2T506lZiYGMaMGcPu3bt5/fXXeeSRR5g9e/YpHU9ERMoHJaNERETKqZYtWzJr1qzA9YyMDNavX88999zDiBEjAttvvvnmUjn+ggULiIqK4pxzzglsO3jwYKBJ89GsVitxcXEcOHDguPs8++yzqVatGkuXLs2XjFqxYgUul4tLLrkE8M+C+fTTTzEaj0ziHjBgAP369eODDz7gtttuO+XHt3btWt5//31mzpwZOC5A586dGTlyJCtWrMi3/Wi1a9emffv2LFu2LF8y6rfffmPnzp2MGTMG8M+E2bVrF8888wx9+/YNjMu7vTiysrLYv39/oTN+SkLbtm0DpVJDhgyhd+/ePP7444wfPz6QdLj44ovp0aMHixcvLrFk1Keffpqv6frQoUMZOHAgr776aiAZNWDAAB566CHq1at33IQnwPnnn4/VamX58uX5klHLly/HYDDQr18/wJ80mjNnDnfeeSejR48OjLvgggu4/PLLWbhwYb7thcnKyiI1NRWn08mvv/7K3LlzsVqtnHvuuYEx06ZNo1atWixevDhQSnvNNddw9dVXM3PmzEAyqiRf+x06dKBDhw6B69u3b+fRRx+lW7duXHXVVQAsWbKE7777jjfffDMwowugWbNmTJkyhXXr1tGxY0c2btzIxx9/zDXXXMOUKVMA/+9pwoQJ/PPPP0WOKTc3l9TUVLxeL1u2bOGxxx4DyHd+gD859corrwT61Xm9Xt58800yMzOLncQVEZHyR2V6IiIi5VTeh8U8YWFhWCwWfvrppxOWkZ2qefPm8d133zFhwoR8szvsdnuhs4VsNht2u/24+zWZTFx00UWsX78+X0nX0qVLSUpKCszisFqtgQ/jHo+HtLQ0IiIiaNSoUWB21qlasWIF0dHRdOvWjdTU1MDP6aefTkRExAlLy/r168eff/4ZmNkB/mSH1WoNNNjOWzVwzZo15ObmnlK8WVlZAERGRp7Sfo5n0KBBgcsmk4nWrVvj8/nybY+JiaFRo0YFStBOxdGJqPT0dDIzMznjjDNO+nedl0Rdvnx5YFYhwLJly2jfvj21a9cG4PP
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XmcjeX/x/HX2Wc3zIx935M9kaVIqVApKZW0kaWULBUqVIiirIVIlCWlfkXoWyqptAjtyr5vM4PZz/77Y8xhzBkGM3PGnPfz8ZjH455zrnPdn/vc58yc+3Ou63MZvF6vFxERERERERERkUJkDHQAIiIiIiIiIiISfJSUEhERERERERGRQqeklIiIiIiIiIiIFDolpUREREREREREpNApKSUiIiIiIiIiIoVOSSkRERERERERESl0SkqJiIiIiIiIiEihU1JKREREREREREQKnZJSIiIiIiIiIiJS6JSUEhERCQI9e/akZ8+egQ6jUOzbt486derw0UcfBToUyaNhw4bRvn37fO3zo48+ok6dOuzbty9f+y3K/L32p02bRp06dQo9ljp16jBt2rRC36+IiFxazIEOQERERIoej8fD//3f//G///2Pf/75hxMnTlCxYkU6depEr169sNls2drndtE7ZMgQ+vTpk+t++vXrx/r16/n++++JiIjItY/PP/+cdevWUbJkyQs/qGJuz549zJkzh++//54jR45gsVioXbs2HTt2pHv37oSEhAQ6xAIxc+ZMatasyfXXXx/oUIDMZNjw4cN9v5tMJmJiYmjdujWDBg2iTJkyAYyuaNm3bx/XXXed73ej0UiZMmW4/PLLGTBgAJdddtl599mzZ0+OHTvGihUr8jNUEREpIEpKiYiIBIG5c+eeV/v09HSGDx9O48aNufvuu4mJiWHTpk1MmzaN9evXs2DBAgwGQ7bHtG7dmi5dumS7rV69emfdz6233srXX3/Nl19+yW233eY3jq+++oo2bdooIXUW33zzDQMHDsRqtdKlSxdq166N0+nk119/5dVXX2Xbtm289NJLgQ6zQMyaNYsbb7wxR1KqS5cudO7cGavVGpC4nnjiCSpWrIjD4WDz5s18/PHH/Prrr6xYsSJHUrcg9e/f/6yJ4aLg5ptv5pprrsHj8bB9+3YWL17Mt99+y9KlSy8oMSUiIpcOJaVEREQuUWlpaYSFheWp7flemFssFhYvXkzTpk19t911111UqFDBl5hq1apVtsdUrVo1R1LqXNq3b094eDjLly/3m5Ras2YNaWlp3HrrrefVbzDZu3cvgwYNonz58syfP5/SpUv77uvRowe7d+/mm2++CVyAAWIymTCZTAHb/zXXXEODBg0AuPPOOylZsiRvvfUWa9asoVOnToUWh9lsxmwu2h/569Wrl+1vR9OmTenfvz+LFy/mxRdfDGBkIiJS0FRTSkRE5BKQVRdm27ZtDBkyhCuvvJJ7770XgKNHjzJ8+HCuueYa6tevT5s2bejfv3+2WjrnW1PKarVmS0hl6dChAwDbt2/3+7iMjAzsdnue9xMSEsINN9zAjz/+SEJCQo77V6xYQXh4OO3bt+f48eNMmDCBW265hSZNmtC0aVN69+7Nli1bzrmf3I7fXy0jj8fDO++8Q+fOnWnQoAGtWrVi5MiRnDhx4qz7mDt3LnXq1GH//v057ps0aRL169f39bFr1y4ef/xxWrduTYMGDbjmmmsYNGgQycnJ5zyWM82ZM4e0tDTGjh2bLSGVpUqVKjzwwAPA2ettnVkDKOs1t3PnToYOHcoVV1zBVVddxeTJk/F6vRw8eJD+/fvTtGlTWrduzdtvv52tv9xqOv3000/UqVOHn3766azHNXfuXO6++25atGhBw4YN6dq1K6tXr84Rc1paGh9//DF16tShTp06DBs2zO/++/btm22q2Om6d+9O165ds932ySef0LVrVxo2bEjz5s0ZNGgQBw8ePGvMZ9OsWTMgM4l4uu3bt/PEE0/QvHlzGjRoQNeuXVmzZk22Nhfz2j+zptSwYcN8z9WZP6eff4fDwdSpU+nQoQP169enbdu2vPLKKzgcjmz9OxwOxo0bx1VXXUWTJk3o168fhw4dOu/n53RXXXUVgO/cZZ3LX3/9lZdffpmrrrqKxo0b89hjj5GYmHhR+xIRkcAq2l+biIiISDYDBw6kSpUqDBo0CK/XC8Djjz/Otm3buO+++6hQoQKJiYl8//33HDx4kIoVK+br/uPj4wH8TqX7+OOPWbRoEV6vlxo1atC/f39uueWWc/Z5yy238PHHH7Nq1Sruu+8+3+3Hjx/nu+++o3PnzoSEhLB161a+/PJLbrrpJipWrEh8fDzvv/8+9913H5999lm+1eoZOXIkH3/8MV27dqVnz57s27ePhQsX8vfff7N48WIsFovfx3Xs2JFXX32VVatW0bt372z3rVq1itatW1OiRAkcDge9evXC4XBw3333ERsby+HDh/nmm29ISkoiMjLyvOL9+uuvqVSpkt8kYn4YNGgQNWrUYMiQIaxdu5Y333yT6OholixZwlVXXcXQoUNZvnw5EyZMoEGDBlx55ZX5st8FCxbQvn17brnlFpxOJ5999hkDBw5k1qxZtGvXDoBXXnmF5557joYNG3LXXXcBULlyZb/9dezYkWeeeYbff/+dhg0b+m7fv38/mzdv5umnn/bd9uabbzJlyhQ6duxIt27dSExM5L333qNHjx783//9H1FRUed9PFnJytMfu3XrVu655x7KlCnDI488QlhYGKtWreKxxx5j2rRpviTw3r178+213717d1q2bJnttnXr1rF8+XJKlSoFZCZm+/fvz6+//spdd91FjRo1+O+//5g/fz67du3ijTfe8D322Wef5dNPP+Xmm2+madOm/Pjjjxc9XXDPnj0AREdHZ7t9zJgxREVFMWDAAPbv38/8+fN58cUXmTx58kXtT0REAkdJKRERkUtI3bp1mTRpku/3pKQkNm3axNNPP02vXr18t/ft27dA9j9nzhwiIiK45pprst3epEkTOnbsSMWKFTly5AiLFi1i6NChJCcn+0Z05eaqq64iLi6OFStWZEtKrV69GqfT6Uts1alTh88//xyj8dRA7y5dutCxY0c+/PBDHnvssYs+vg0bNvDBBx8wceLEbAm1Fi1a0Lt3b1avXp1roq18+fI0btyYlStXZktK/f777+zdu5cBAwYAmSNj9u3bx5QpU7jpppt87bLuPx8pKSkcPnw41xFA+aFhw4a+KVTdu3enffv2jB8/nsGDB/uSDzfffDNXX301y5Yty7ek1Oeff56tOHuPHj3o2rUr8+bN8yWlunTpwujRo6lUqdI5p45ef/31WK1WVq1alS0ptWrVKgwGAx07dgQyk0fTpk3jySefpF+/fr52N9xwA7fffjuLFi3KdntuUlJSSExMxOFw8NtvvzF9+nSsVivXXnutr83YsWMpV64cy5Yt802xvffee7nnnnuYOHGiLymVn6/9Jk2a0KRJE9/vu3fv5qWXXqJ169bcfffdACxfvpwffviBd9991zfCC6BWrVqMGjWKjRs30rRpU7Zs2cKnn37Kvffey6hRo4DM8zRkyBD+/fffPMeUnp5OYmIiHo+HHTt28PLLLwNke39AZpLq7bff9tWz83g8vPvuuyQnJ593MldERIoGTd8TERG5hGRdNGYJCQnBYrHw888/n3N62cWaOXMmP/zwA0OGDMkxUmTJkiU88MADXHfdddxzzz0sW7aM2rVr8/rrr5ORkXHWfk0mE507d2bTpk3ZpnqtWLGC2NhY36gOq9Xquyh3u90cO3aMsLAwqlWrxt9//50vx7h69WoiIyNp3bo1iYmJvp/LL7+csLCwc04569ixI3/99ZdvpAdkJj2sVquvEHfWKoPfffcd6enpFxVvSkoKAOHh4RfVz9l069bNt20ymahfvz5erzfb7VFRUVSrVi3H1LSLcXpC6sSJEyQnJ3PFFVdc8LnOSqauWrXKN8oQYOXKlTRu3Jjy5csD8MUXX+DxeOjYsWO210BsbCxVqlQ552sgy4MPPkjLli1p27YtTzzxBKG
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKMAAAK1CAYAAAAUpS2tAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4U2UbBvD7ZDdt001LKWUVitiyRPYSAZmiyFLABTKkggxZoiACggIyZYOIDFFUNn6KiICAICI4EJBRoFDooCt7fH+EBELTnTZtev+uqxenJ2/OeZIeck6e877PK1gsFguIiIiIiIiIiIhKgMjdARARERERERERUfnBZBQREREREREREZUYJqOIiIiIiIiIiKjEMBlFREREREREREQlhskoIiIiIiIiIiIqMUxGERERERERERFRiWEyioiIiIiIiIiISgyTUUREREREREREVGKYjCIiIiIiIiIiohLDZBQREZGHGThwIAYOHOjuMErE9evXER0dja+//trdoVA+TZw4Ee3atXPpNr/++mtER0fj+vXrLt1uaebs2F+8eDGio6NLPJbo6GgsXry4xPdLRERll8TdARAREZH7bd26FTt27MClS5eQnp6OChUqoEmTJhgxYgQiIiKytf/yyy+xdu1aXL9+HRUrVsxXAmzYsGE4evQojhw5Ah8fH6dtxo4di++++w6HDh1CQECAS16bJ4qPj8fq1atx5MgR3L59G1KpFLVq1ULnzp3Rt29fKBQKd4dYLJYvX46oqCi0b9/e3aEAsCbBJk2aZP9dLBYjKCgILVq0wOjRoxEaGurG6EqX69ev48knn7T/LhKJEBoaikcffRRxcXF45JFHCrzNgQMHIjU1Fbt27XJlqEREVAKYjCIiIvIwa9asKfBz/v77b0RERKBdu3ZQqVS4fv06vvzySxw4cADbt293+FK9ZcsWTJ06FU899RReeeUVnDx5EjNmzIBGo8GQIUNy3MfTTz+NAwcO4IcffsAzzzyT7XGNRoMff/wRLVu2ZCIqFz/99BNGjRoFmUyGHj16oFatWjAYDPjtt9/w0Ucf4eLFi3j//ffdHWaxWLFiBZ566qlsyagePXqga9eukMlkbolr5MiRiIiIgF6vx+nTp/HNN9/gt99+w65duyCXy0ssjuHDh+f6f7A06NatG1q3bg2z2Yz//vsPmzdvxs8//4ytW7cWKiFFRERlE5NRREREZYBarYZSqcxX28J8IZ82bVq2de3bt8dzzz2H7du327/garVafPzxx2jbti0WLVoEAOjTpw/MZjOWLVuGvn37ws/Pz+k+2rVrB29vb+zcudNpMmr//v1Qq9V4+umnCxx/eXHt2jWMHj0a4eHhWL9+PSpUqGB/rH///rh69Sp++ukn9wXoJmKxGGKx2G37b926NWJjYwEAvXv3RkBAAFatWoX9+/ejS5cuJRaHRCKBRFK6L+/r1KmDHj162H9v2LAhhg8fjs2bN2P69OlujIyIiEoSa0YRERGVMra6LxcvXsTYsWPx+OOP44UXXgAA3LlzB5MmTULr1q0RExODli1bYvjw4Q61clxVM6pSpUoAgPT0dPu648eP4+7du/Z4bPr37w+1Wp1rIkShUKBjx444duwYkpOTsz2+a9cueHt7o127drh79y7mzJmD7t27o0GDBmjYsCEGDx6Mc+fO5Rl3Tq/fWa0is9mMTz/9FF27dkVsbCyaN2+Od999F2lpabnuY82aNYiOjsaNGzeyPTZv3jzExMTYt3HlyhW88cYbaNGiBWJjY9G6dWuMHj0aGRkZeb6Wh61evRpqtRozZ850SETZVKlSBS+99BKA3OtpPVzjx3bMXb58GePGjcNjjz2Gpk2bYsGCBbBYLLh58yaGDx+Ohg0bokWLFli7dq3D9nKq2XT8+HFER0fj+PHjub6uNWvWoF+/fmjSpAnq1q2Lnj17Yt++fdliVqvV+OabbxAdHY3o6GhMnDjR6f6HDh3qMCTsQX379kXPnj0d1m3fvh09e/ZE3bp10bhxY4wePRo3b97MNebcNGrUCIA1efig//77DyNHjkTjxo0RGxuLnj17Yv/+/Q5tinLsP1wzauLEifb36uGfB//+er0eixYtQocOHRATE4M2bdrgww8/hF6vd9i+Xq/HrFmz0LRpUzRo0ADDhg3DrVu3Cvz+PKhp06YAYP/b2f6Wv/32Gz744AM0bdoU9evXx4gRI5CSklKkfRERUelRum+dEBERlWOjRo1ClSpVMHr0aFgsFgDAG2+8gYsXL2LAgAGoVKkSUlJScOTIEdy8edNpbaeCSk1NhdlsRkJCApYuXQoAaNasmf3xv//+GwAQExPj8LxHH30UIpEI//zzj0Ovh4d1794d33zzDfbu3YsBAwbY19+9exeHDx9G165doVAocOHCBfzwww/o1KkTIiIikJSUhC+++AIDBgzA7t27XVaL591338U333yDnj17YuDAgbh+/To2btyIv//+G5s3b4ZUKnX6vM6dO+Ojjz7C3r17MXjwYIfH9u7dixYtWsDPzw96vR6DBg2CXq/HgAEDEBwcjMTERPz0009IT0+Hr69vgeI9cOAAKleujIYNGxb6Nedm9OjRqFGjBsaOHYuDBw9i2bJl8Pf3x5YtW9C0aVOMGzcOO3fuxJw5cxAbG4vHH3/cJfv97LPP0K5dO3Tv3h0GgwG7d+/GqFGjsGLFCrRt2xYA8OGHH2LKlCmoW7cu+vTpAwCIjIx0ur3OnTtjwoQJOHPmDOrWrWtff+PGDZw+fRrjx4+3r1u2bBkWLlyIzp07o1evXkhJScHnn3+O/v3749tvv4VKpSrw67ElKR987oULF/D8888jNDQUr732GpRKJfbu3YsRI0Zg8eLF6NChAwBrAstVx37fvn0d/v8CwKFDh7Bz504EBgYCsCZkhw8fjt9++w19+vRBjRo1cP78eaxfvx5XrlzBJ598Yn/u22+/jR07dqBbt25o2LAhjh07VuRhgfHx8QAAf39/h/UzZsyASqVCXFwcbty4gfXr12P69OlYsGBBkfZHRESlA5NRREREpVTt2rUxb948++/p6en4/fffMX78eAwaNMi+fujQoS7bZ+vWre29Ifz9/TFlyhS0aNHC/vidO3fsRZofJJPJ4O/vj9u3b+e6/aZNmyIkJAS7du1ySEbt27cPBoMB3bt3B2DtBfPdd99BJLrfibtHjx7o3LkzvvrqK4wYMaLIr/XkyZP48ssvMXfuXPt+AaBJkyYYPHgw9u3b57D+QeHh4ahfvz727NnjkIw6c+YMrl27hri4OADWnjDXr1/HwoUL0alTJ3s72+MFkZmZicTExBx7/LhC3bp17UOl+vbti3bt2mH27NkYM2aMPenQrVs3tGrVCtu2bXNZMuq7775zKLrev39/9OzZE+vWrbMno3r06IFp06ahcuXKuSY8AesQU5lMhr179zoko/bu3QtBENC5c2cA1qTR4sWL8eabb2LYsGH2dh07dsSzzz6LTZs2OazPSWZmJlJSUqDX6/HHH39gyZIlkMlkeOKJJ+xtZs6ciYoVK2Lbtm32obQvvPACnn/+ecydO9eejHLlsd+gQQM0aNDA/vvVq1fx/vvvo0WLFujXrx8AYOfOnfjll1+wYcMGe48uAKhZsyamTp2KU6dOoWHDhjh37hx27NiBF154AVOnTgVg/TuNHTsW//77b75j0mg0SElJgdlsxqVLl/DBBx8AgMP/D8D6+bN27VoIggDAmjTbsGEDMjIyCpzEJSKi0ofD9IiIiEop25dFG4VCAalUil9//TXPYWSFtWrVKqxcuRITJ05EeHg4NBqNw+NarTbH3kJyuRxarTbX7YvFYnTt2hW///67w5CuXbt2ITg42N6LQyaT2b+Mm0wmpKamQqlUolq1avbeWUW1b98++Pr6okWLFkhJSbH/PProo1AqlXkOLevcuTP++usve88OwJrskMlk9gLbtlkDDx8+nO29LKjMzEwAgLe3d5G2k5tevXrZl8ViMWJiYmCxWBzWq1QqVKtWLdsQtKJ4MBGVlpaGjIwMPPbYY4X+W/v4+KB169bYu3evvVc
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJ8AAAK1CAYAAABmak8bAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4U2UbBvD7ZCfdi5aWVVYB2SJ7iYAMEUVkCDgAmRVkKEMEREFEUKayhwjiwMX+FBFBAUVZDgRkt1DoHtnJ+f5IEwht0wJtkyb377p6kSZvznlOesh48rzPK4iiKIKIiIiIiIiIiKgESNwdABEREREREREReS8mn4iIiIiIiIiIqMQw+URERERERERERCWGySciIiIiIiIiIioxTD4REREREREREVGJYfKJiIiIiIiIiIhKDJNPRERERERERERUYph8IiIiIiIiIiKiEsPkExERERERERERlRgmn4iIiDzIoEGDMGjQIHeHUSquXr2KuLg4fPnll+4OhYpo8uTJ6NChQ7Fu88svv0RcXByuXr1arNv1ZPmd+0uWLEFcXFypxxIXF4clS5aU+n6JiMi3yNwdABEREd2fzz77DN9++y3Onz+PzMxMlCtXDs2aNcPo0aNRoUIFp7EFfbidMGEChg0bVuA+RowYgUOHDuHnn3+Gv79/gdvYs2cPDhw4gJCQkHs/IC93+fJlrF69Gj///DNu3LgBuVyOmjVromvXrujbty9UKpW7QywRy5cvR/Xq1dGxY0d3hwLAlvSaMmWK43epVIqwsDC0atUK48aNQ2RkpBuj8yxXr17FI4884vhdIpEgMjISDzzwAOLj41G7du273uagQYOQlpaG7du3F2eoRETkoZh8IiIi8iBr1qy56/v8/fffqFChAjp06IDAwEBcvXoVn3/+Ofbt24dvvvkmz4foVq1aoWfPnk7X1alTx+U+Hn/8cezbtw/ff/89nnjiiTy363Q6/PDDD2jdujUTTy78+OOPGDt2LBQKBXr27ImaNWvCZDLh999/x7vvvotz587hzTffdHeYJWLFihV49NFH8ySfevbsie7du0OhULglrjFjxqBChQowGo04fvw4vvrqK/z+++/Yvn07lEplqcUxcuRIlwlgT/DYY4+hbdu2sFqt+O+///DJJ5/gp59+wmeffXZPCSgiIvIdTD4RERGVMK1WC41GU6Sx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
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJsAAAK1CAYAAABvge9hAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAA+rJJREFUeJzs3Xd4U2UbBvD7ZDfdi1ZGWWXvIXsPWeJAEFSWgoBSEBAQEVkCAgIiQ9moCIKoiMhQlgifTBEEBQHZo4UO6MhOzvdHmgOhG9qkae7fdXFxevLmnDftaZo8eZ7nFURRFEFERERERERERJQPZO6eABERERERERERFR0MNhERERERERERUb5hsImIiIiIiIiIiPINg01ERERERERERJRvGGwiIiIiIiIiIqJ8w2ATERERERERERHlGwabiIiIiIiIiIgo3zDYRERERERERERE+YbBJiIiIiIiIiIiyjcMNhEREeWTPn36oE+fPu6ehkscPnwYlSpVwuHDh909Fcqlgrg+Fy5ciEqVKuXrMQu7zK79cePGoU2bNi6dx/Xr11GpUiV8//33Lj0vERFRbjDYREREVEiYzWZ07twZlSpVwsqVKzPcbrPZsHz5crRp0wY1atRA165d8dNPP+V43K5du6JVq1YQRTHLMb169UKTJk1gsVge6zEUdWfOnMHo0aPRsmVLVK9eHQ0aNED//v3x3XffwWq1unt6BUKv12PhwoWFKrDoCHI5/lWrVg1t2rTBtGnTkJyc7O7pFSqO4NiD36u2bdti7NixuHbt2iMds02bNhg8eHA+z5SIiIoShbsnQEREVFRkFiDKi6+++gq3bt3K8vaPP/4Yy5Ytw4svvogaNWpg9+7dePvttyEIArp06ZLl/bp27Yq5c+fi2LFjePLJJzPcfv36dZw4cQK9e/eGQsGXBlnZuHEjJk2ahNDQUDz77LMoXbo00tLScOjQIbz33nu4c+cOhgwZ4u5p5ju9Xo9FixYhJiYGDRs2dLrtjTfewKBBg9w0M2Dy5MnQarXQ6/U4ePAg1qxZg7///htff/21S+fxwQcfZBvMLQz69OmDGjVqwGKx4J9//sGGDRuwb98+/Pjjj4iIiHD39IiIqIjhK0oiIqJs6HQ6aLXaXI1VqVSPfJ6EhAQsXrwYAwcOxIIFCzLcHhcXh9WrV+OVV17BxIkTAQA9evRA7969MXv2bHTs2BFyuTzTY3ft2hXz5s3Dli1bMg02bd26FaIoomvXro88/6LuxIkTmDRpEmrXro1ly5bBz89Puq1///44deoUzp8/78YZuodCoXBrgLJDhw4ICQkBYM/OGzlyJLZt24a//voLNWvWdNk8lEqly871qOrXr4+OHTsCAF544QWUKVMG06ZNww8//MAsJSIiyncsoyMiIkrnKM25cOEC3n77bTz55JN4+eWXAQB37tzBu+++ixYtWqB69epo1qwZ3njjDVy/fl26/+P0xJkzZw7Kli2LZ555JtPbd+3aBbPZLM0HAARBwEsvvYTY2Fj8+eefWR77iSeewJNPPomff/4ZZrM5w+0//fQToqKiUKtWLdy4cQOTJ09Ghw4dULNmTTRs2BDDhw93epxZadOmDcaNG5dhf2bfF5PJhAULFqB9+/aoXr06WrZsidmzZ8NkMmV7jqlTp6JOnTrQ6/UZbhs1ahSaNm0qlbOdOnUKAwYMQMOGDVGzZk20adMG7777bo6PIzOLFi2CIAiYM2eOU6DJoUaNGujWrRuArPtZZdZjZ9y4cahTpw5u3ryJwYMHo06dOmjevDnWrl0LAPj333/Rt29f1K5dG61bt8aWLVucjplVz6Tvv/8elSpVyvbnZjKZ8Mknn6Bbt26oV68eateujZdffhmHDh1ymnPjxo2l74GjFGvhwoWZnv/pp5/O9HfAZrOhefPmGD58uNO+zz//HF26dEGNGjXQpEkTTJw4Effu3ctyzjmpX78+AODq1atO+0+ePIkBAwagXr16qFWrFnr37o0//vjDaczjXPsP92zq06ePU+nag/8e/PknJydj+vTpUllm+/btsWzZMthsNqfjJycnY9y4cahXrx7q16+Pd955BykpKXn+/jyoUaNGACA9PsfP8sqVKxg3bhzq16+PevXq4d133830942IiCg7zGwiIiJ6yFtvvYXSpUtj5MiRUmnMsGHDcOHCBfTu3RslSpRAYmIi/ve//+HWrVsoWbLkY53vr7/+wg8//IB169ZBEIRMx5w5cwZarRbly5d32u/I3jhz5oz0RjszXbt2xfvvv48DBw6gdevW0v5///0X586dw9ChQwHYAzR//vknunTpgsjISNy4cQNff/01+vbti61bt8LHx+exHitgDzK88cYb+OOPP/Diiy+ifPnyOHfuHL744gtcvnwZn376aZb37dy5M9auXYtff/0VnTp1kvbr9Xrs3bsXzz//PORyORISEjBgwAAEBwdj0KBBCAgIwPXr17Fz5848z1ev1+PQoUOoX78+ihcv/kiPOTtWqxWvv/466tevj9GjR2PLli2YOnUqfHx88PHHH6Nr16546qmnsH79erzzzjuoXbs2SpUq9djnTU1NxcaNG/H000+jR48eSEtLw7fffouBAwdi48aNqFKlCkJCQjB58mRMnjwZ7du3R/v27QEgy6bgnTp1wqJFi3Dnzh2Eh4dL+//44w/cvn0bnTt3lvZNnDgRmzZtQrdu3dCnTx9cv34da9euxT///IOvv/76kbKFHIGTgIAAad/Bgwfx+uuvo3r16oiJiYEgCPj+++/Rr18/rFu3Tvodys9rf8iQIejevbvTvh9//BEHDhxAaGgoAPt11bt3b8TFxaFXr1544okn8Oeff2LevHm4c+cO3nvvPQCAKIp488038ccff6BXr14oX748du7ciXfeeSfP358HOQJyQUFBTvtHjBiBkiVLYtSoUfjnn3+wceNGhISEYMyYMY91PiIi8i4MNhERET2kcuXKmDt3rvR1cnIy/vzzT4wdOxYDBgyQ9udH6Ykoivjggw/QuXNn1KlTJ8ssijt37iA0NDRDMMrxhv727dvZnqdDhw744IMP8NNPPzkFmxwNxh0ldK1atZJKbRxat26Nnj174ueff8Zzzz2Xp8eXmS1btuD333/HmjVrnAJkFSpUwKRJk3D8+HHUrVs30/vWq1cPERER2L59u1Ow6ddff4VOp5OCGX/++Sfu3buHlStXokaNGtK4kSNH5nm+V65cgdlsRsWKFfN839wwGo145plnpOupa9euaN68OcaPH4958+ZJj6lJkybo1KkTfvjhBwwbNuyxzxsYGIg9e/Y4lX+++OKL6NSpE9asWYMZM2ZAq9WiQ4cOmDx5MipVqoRnn30222N27twZCxYswM8//4zevXtL+7dt2watVotWrVoBAI4dO4aNGzdizpw5TuWbDRs2xMCBA7Fjx45clXU6sqAcAcF169YhJCREKhcVRRGTJ09Gw4YNsWLFCun3p1evXujSpQvmz5+PVatWAcjfa79p06ZOXx8/fhyHDx/GCy+8gJYtWwIAVq9ejWvXrmHTpk0oU6aMNK9ixYph5cqVeO211/DEE09g9+7dOHr0KMaMGYOBAwcCAF566SX07ds31/MBgLS0NCQmJsJiseDMmTOYPn06BEHAU0895TSuSpUqmDFjhvT13bt38e233zLYREREecIyOiIioof06tXL6WuNRgOlUokjR448VolPZr7//nucO3cOo0ePznacwWDItCeUWq2Wbs9OYGAgWrZsiT179kCn0wGwvxHfunUrqlevjrJlywKwP1YHs9mMpKQkREVFISAgAP/880+eHltWduzYgfLly6NcuXJITEyU/jnKerJb9UwQBHTs2BH79u1DWlqatH/79u2IiIhAvXr1AAD+/v4A7EGozEoH8yI1NRUA4Ovr+1jHyU6PHj2k7YCAAJQtWxY+Pj5OAbVy5cohICDgkVcQe5hcLpeuKZvNhrt378JisaB69eqP/LMuW7YsqlSpgm3btkn7rFYrfv75Z7Rp00a6vnbs2AF/f380bdrU6RqoVq0atFptrle+69ixIxo3bow
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKYAAAK1CAYAAADyjObpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8VFX6x/HPnZ4eQmgBlBKqdBUFQRQL9q6oqLt2XREVG7i7YmERXFFEXBt2VATbWlDkZ0FE1o4UQTpICymQPv3+/ggZCATIQJKbZL7v1ysvbu6cufe5w8mUZ855jmGapomIiIiIiIiIiEgts1kdgIiIiIiIiIiIxCYlpkRERERERERExBJKTImIiIiIiIiIiCWUmBIREREREREREUsoMSUiIiIiIiIiIpZQYkpERERERERERCyhxJSIiIiIiIiIiFhCiSkREREREREREbGEElMiIiIiIiIiImIJJaZERESk1lx55ZVceeWVVochVfT999/TqVMnvv/++2o9bqdOnXjqqaeq9Zh13Z59f+PGjXTq1In33nuvVuMYNWoUgwcPrtVzioiI7I8SUyIiIg3c6tWrufbaa+nduzd9+/bl7rvvJi8vb7/3+fzzz+nUqRMzZ87cZ5v58+fTqVMnXnvtteoOuUHx+Xy88sorXHzxxRx55JF0796dIUOG8NBDD7F27Vqrw6sxc+fOrXPJp06dOlX46dOnD1dccQVff/211aHVOVdeeWWFx6pv375ceOGFvPPOO4TD4aiP995779GpUycWL15cA9GKiEh95rA6ABEREak5W7duZdiwYSQlJXHHHXdQUlLCSy+9xIoVK5g5cyYul6vS+51wwgkkJSXx0UcfcfHFF1fa5uOPP8Zut3PmmWfW5CXUa3l5eVx33XUsXbqUE088kbPOOov4+HjWrl3LrFmzmDFjBkuWLLE6zBoxd+5c3njjDW699da9blu0aBF2u92CqOC4447j3HPPxTRNNm/ezFtvvcVNN93ECy+8wMCBA2stjpYtW7Jo0SIcjrr7drx58+aMHDkSgO3bt/PBBx/w97//nXXr1nHXXXdZHJ2IiDQUdfeVUERExAIlJSXEx8dbHUa1efbZZyktLeW9994jIyMDgB49enD11Vfz/vvvM3To0Erv53K5GDJkCO+99x5ZWVk0a9aswu0+n485c+bQv39/GjduXOPXUV+NHj2aZcuWMXnyZIYMGVLhtttvv50nnnjCosis5Xa7LTt3mzZtOPfccyO/DxkyhDPOOIPXXnutVhNThmFY+jhURVJSUoXHaujQoZx22mm88cYb3HbbbTidTgujExGRhkJT+UREJGY99dRTdOrUiVWrVnHnnXdy9NFHc/nllwOwfPlyRo0axUknnUT37t057rjjGD16NNu3b6/0GOvXr2fUqFEcddRRHHnkkYwePZrS0tIKbb1eL2PHjuWYY46hd+/e3HTTTWRlZVVabycrK4vRo0fTv39/unXrxplnnsk777wT9TV+/vnnnHDCCZGkFED//v1p06YNn3766X7ve8455xAOh5k1a9Zet3399dcUFhZy9tlnA/Duu+9y1VVX0a9fP7p168YZZ5zBm2++ecD4yqf3bNy4scL+fdU2+u2337j22ms58sgj6dmzJ1dccQU///zzfs+Rk5ND165dmTJlyl63rVmzhk6dOjFt2jQAAoEAU6ZM4dRTT6V79+4cc8wxXHbZZcyfP/+A17Kn3377ja+//pqLLrpor6QUlCX/7r333sjv+6q/tWdNoPLaRC+++CJvvPEGJ510Ej179uSaa65hy5YtmKbJ008/zfHHH0+PHj24+eab2bFjR4Vj7qvG0+DBgxk1atR+r+unn35ixIgRnHDCCXTr1o1BgwYxbtw4vF5vhZjfeOONyLnKfyo7/2effUanTp344Ycf9jrX9OnT6dSpEytWrIjsW716NSNGjKBv3750796dCy64gC+++GK/Me9P+/btadSoERs2bKiw3+/3M3nyZE455ZTIdT766KP4/f4K7Q627+9ZY6q8z1f2s2dNqLlz53L55ZfTq1cvevfuzQ033MDKlSv3Osf//d//cdZZZ9G9e3fOOuss5syZE+3DU0FcXBw9e/akpKQkMh24U6dOPPTQQ5FzlT9fffPNN4d0LhERiR0aMSUiIjHvtttu4/DDD+eOO+7ANE0AvvvuO/78808uuOACmjRpwsqVK5kxYwarVq1ixowZGIZR4Ri33347rVq1YuTIkfz+++/MnDmTtLQ07r777kibUaNG8emnn3LuuefSs2dPfvzxR2644Ya94snJyeGSSy7BMAyGDRtGWloa33zzDX//+98pKirir3/9a5WuKysri9zcXLp167bXbT169DjgB8ejjz6a5s2b89FHH3H11VdXuO3jjz8mLi6Ok08+GYC33nqLDh06MHjwYBwOB1999RUPPvggpmkybNiwKsV7IAsWLOD666+nW7duDB8+HMMweO+99/jLX/7Cm2++SY8ePSq9X3p6OkcffTSffvopw4cPr3DbrFmzsNvtnHbaaQBMmTKF5557josvvpgePXpQVFTEkiVLWLp0Kccdd1xU8X755ZcAFUacVKePPvqIQCDAlVdeyY4dO5g6dSq33347xx57LN9//z3XX38969evZ9q0aUyYMIFHHnmkWs772Wef4fV6ueyyy0hNTWXRokVMmzaNrVu3MnnyZKBsZM22bduYP38+jz766H6Pd8IJJxAfH8+nn35K3759K9w2a9YsOnToQMeOHQFYuXIll112Gc2aNeP666+P3O+WW27hqaee4pRTTon6egoLCykoKOCwww6L7AuHw9x88838/PPPXHLJJbRv354VK1bw6quvsm7dOv7zn/9E2lZX32/fvv1ej1VhYSHjx48nLS0tsu+DDz5g1KhRDBgwgLvuuovS0lLeeustLr/8ct5//31atWoFwLfffsutt95KZmYmd955J9u3b2f06NE0b9486sdodxs3bsRut5OcnBzZ9/PPP/P5559z+eWXk5CQwOuvv86IESP46quvaNSo0SGdT0REGj4lpkREJOZ17tyZiRMnVth3+eWXc80111TY16tXL0aOHMnPP//MUUcdVeG2Ll26MG7cuMjvO3bs4J133okkppYuXcqnn37KX/7yF+677z4Ahg0bxujRo1m+fHmFYz3xxBOEQiE++uijyIe6yy67jJEjRzJlyhQuvfRSPB7PAa9r27ZtADRp0mSv25o0acKOHTvw+/37rDNls9k488wzefHFF1m7di1t27YFoKioiLlz53LKKaeQkJAAwLRp0yrEdMUVV3Dttdfy8ssvV0tiyjRNHnjgAY455himTp0aSQxeeumlnHnmmUyaNImXXnppn/c/44wzuP/++1mxYkUkyQHw6aefcvTRR5Oeng6UjQQbNGgQDz/88CHHvHr1aoAK56tOWVlZfP755yQlJQFlyZTnnnsOr9fLu+++G6ldtH37dj766CMefPDBff5fR+Ouu+6q8H89dOhQDj/8cB5//HE2b95MRkYGvXv3pk2bNsyfP/+AiTmPx8PgwYOZPXs2//jHPyK1p7Kzs/nxxx8rJBP/9a9/0aJFC959993ItVx++eVcdtllPPbYY1VKTPl8vshon82bNzNp0iRCoVCFUW0fffQR3333Ha+//nqFv/UOHTowZswYfvnlF/r06QNUX99PT0+v8FiZpsnNN9+M0+lk/PjxABQXF/Ovf/2Liy++uEIfPf/88znttNN47rnnIvsfe+wxGjduzJtvvhnpI3379uWaa66hZcuWVYopFApFHqvt27fz1ltvReqlxcXFRdqtXr2aWbNmRZJ7xxxzDOeeey6ffPIJV1xxRZUfAxERiU2ayiciIjHv0ksv3Wvf7h80yz/I9uzZEyhLMh3oGEcddRQ7duygqKgIgHnz5gFEpgqW2/NDm2mafP755wwePBjTNMnLy4v8DBgwgMLCwkrPXxmfzwdQaTKivLbN7tOvKnPOOecAZSOkys2ePRufzxeZxgcVH6/CwkLy8vLo27cvf/75J4WFhVWKd3+WLVvGunXrOPvss9m+fXv
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XmczfUXx/HX3WdnNvu+V9YS2VIiRaVEStoVFSql0EIlpUVCi1KRSNpTVH4qSZuSaFH23TALs9/998c1l8sdZsbM3Fnez8djHu7c+7nf77nXd+733nPP53wMXq/Xi4iIiIiIiIiISCkyhjoAERERERERERGpfJSUEhERERERERGRUqeklIiIiIiIiIiIlDolpUREREREREREpNQpKSUiIiIiIiIiIqVOSSkRERERERERESl1SkqJiIiIiIiIiEipU1JKRERERERERERKnZJSIiIiIiIiIiJS6pSUEhERETnsuuuu47rrrgt1GFJAP//8M82bN+fnn38u1u02b96cGTNmFOs2y7pjj/1du3bRvHlzPvzww1KNY+zYsfTo0aNU9ykiIqGjpJSIiIiElMfjYcGCBfTr14/WrVvTsWNHrr/+ejZs2JDvfb766iuaN2/Oe++9l++YVatW0bx5c956662SCLvCsNvtzJkzh4EDB3LWWWfRqlUrevfuzWOPPcbWrVtDHV6JWbFiRZlLPDVv3jzg58wzz2TIkCF8++23oQ6tzLnuuusCnqsOHTpw5ZVX8v777+PxeAq9vQ8//JDmzZuzfv36EohWRETyYw51ACIiIlK5jR8/nsWLF9OvXz+GDBlCdnY2//zzDykpKfne57zzziM6OprFixczcODAoGM+++wzTCYTffv2LanQy73U1FSGDh3KX3/9xfnnn88ll1xCREQEW7duZcmSJSxatIg///wz1GGWiBUrVjB//nxGjhx53G3r1q3DZDKFICro0qUL/fr1w+v1smfPHt555x2GDx/Oa6+9Rrdu3Uotjtq1a7Nu3TrM5rL7caFGjRqMHj0agLS0ND7++GMefPBBtm3bxn333Rfi6EREpCDK7llGREREjpOdnU1ERESowyg2S5Ys4aOPPmLmzJn06tWrwPezWq307t2bDz/8kKSkJKpXrx5wu91uZ9myZXTu3Jn4+PjiDrvCGDduHP/88w/Tp0+nd+/eAbfdfffdPP/88yGKLLRsNlvI9t2gQQP69evn/71379706dOHt956q1STUgaDIaTPQ0FER0cHPFeDBg3ioosuYv78+dx1111YLJYQRiciIgWh6XsiIiJl1IwZM2jevDmbNm3i3nvv5eyzz2bw4MEAbNiwgbFjx3LBBRfQqlUrunTpwrhx40hLSwu6je3btzN27Fjat2/PWWedxbhx48jJyQkYm5uby6RJk+jYsSPt2rVj+PDhJCUlBe2vk5SUxLhx4+jcuTMtW7akb9++vP/++4V+jHPmzKF169b06tULj8dDdnZ2ge972WWX4fF4WLJkyXG3ffvtt2RkZHDppZcC8MEHH3D99dfTqVMnWrZsSZ8+fViwYMFJ95E3pWfXrl0B1+fXy+iPP/7glltu4ayzzqJNmzYMGTKE33777YT7SE5O5vTTT2fmzJnH3bZlyxaaN2/O22+/DYDT6WTmzJlceOGFtGrVio4dO3LNNdewatWqkz6WY/3xxx98++23DBgw4LiEFPgSfw888ID/9/z6bR3bAyivF9Hrr7/O/PnzueCCC2jTpg0333wze/fuxev18uKLL3LuuefSunVrbr/9dg4ePBiwzfx6OvXo0YOxY8ee8HH9+uuvjBo1ivPOO4+WLVvSvXt3Jk+eTG5ubkDM8+fP9+8r7yfY/r/44guaN2/OL7/8cty+Fi5cSPPmzfnvv//8123evJlRo0bRoUMHWrVqRf/+/Vm+fPkJYz6Rxo0bExsby44dOwKudzgcTJ8+nV69evkf59NPP43D4QgYV9Rj/9ieUnnHfLCfY3tArVixgsGDB9O2bVvatWvHbbfdxsaNG4/bx//+9z8uueQSWrVqxSWXXMKyZcsK+/QECA8Pp02bNmRnZ5Oamgr4/i8fe+wx/77yXq++++67U9qXiIgUD1VKiYiIlHF33XUX9evX55577sHr9QLwww8/sHPnTvr3709iYiIbN25k0aJFbNq0iUWLFmEwGAK2cffdd1OnTh1Gjx7N33//zXvvvUdcXBxjxozxjxk7dixLly6lX79+tGnThtWrV3PbbbcdF09ycjJXXXUVBoOBa6+9lri4OL777jsefPBBMjMzufHGGwv0uDIzM1m3bh2DBw9m6tSpzJs3j+zsbOrUqcO9995Lnz59Tnj/s88+mxo1arB48WJuuummgNs+++wzwsPD6dmzJwDvvPMOTZs2pUePHpjNZr755hseffRRvF4v1157bYHiPZkff/yRW2+9lZYtWzJixAgMBgMffvghN9xwAwsWLKB169ZB75eQkMDZZ5/N0qVLGTFiRMBtS5YswWQycdFFFwEwc+ZMZs2axcCBA2ndujWZmZn8+eef/PXXX3Tp0qVQ8X799dcAAZUmxWnx4sU4nU6uu+46Dh48yOzZs7n77rs555xz+Pnnn7n11lvZvn07b7/9NlOmTOHJJ58slv1+8cUX5Obmcs0111C1alXWrVvH22+/zb59+5g+fTrgq6jZv38/q1at4umnnz7h9s477zwiIiJYunQpHTp0CLhtyZIlNG3alGbNmgGwceNGrrnmGqpXr86tt97qv9+dd97JjBkzClUNmCcjI4P09HTq1avnv87j8XD77bfz22+/cdVVV9G4cWP+++8/5s6dy7Zt23jppZf8Y4vr2G/cuPFxz1VGRgZPPfUUcXFx/us+/vhjxo4dS9euXbnvvvvIycnhnXfeYfDgwXz00UfUqVMHgO+//56RI0fSpEkT7r33XtLS0hg3bhw1atQo9HN0tF27dmEymYiJifFf99tvv/HVV18xePBgIiMjmTdvHqNGjeKbb74hNjb2lPYnIiKnRkkpERGRMq5FixY899xzAdcNHjyYm2++OeC6tm3bMnr0aH777Tfat28fcNtpp53G5MmT/b8fPHiQ999/35+U+uuvv1i6dCk33HAD48ePB+Daa69l3LhxxzUcf/7553G73SxevNj/ge6aa65h9OjRzJw5k6uvvpqwsLCTPq4dO3bg9Xr5/PPPMZvNjBkzhujoaN566y1Gjx5NVFQU5557br73NxqN9O3bl9dff52tW7fSsGFDwJfsWrFiBb169SIyMhKAt99+OyCmIUOGcMstt/Dmm28WS1LK6/UyceJEOnbsyOzZs/1Jwauvvpq+ffsybdo03njjjXzv36dPHx555BH+++8/f4IDYOnSpZx99tkkJCQAvgqw7t278/jjj59yzJs3bwYI2F9xSkpK4quvviI6OhrwJVJmzZpFbm4uH3zwgb9XUVpaGosXL+bRRx/FarWe8n7vu+++gP/rQYMGUb9+faZOncqePXuoVasW7dq1o0GDBqxateqkSbmwsDB69OjBl19+yUMPPeTvNXXgwAFWr14dkEh84oknqFmzJh988IH/sQwePJhrrrmGZ599tkBJKbvd7q/y2bNnD9OmTcPtdgdUsy1evJgffviBefPmBfytN23alAkTJrBmzRrOPPNMoPiO/YSEhIDnyuv1cvvtt2OxWHjqqacAyMrK4oknnmDgwIEBx+gVV1zBRRddxKxZs/zXP/vss8THx7NgwQL/MdKhQwduvvlmateuXaCY3G63/7lKS0vjnXfe8fdHCw8P94/bvHkzS5Ys8Sf2OnbsSL9+/fj8888ZMmRIgZ8DEREpfpq+JyIiUsZdffXVx1139IfMvA+xbdq0AXwJppNto3379hw8eJDMzEwAVq5cCeCfHpjn2A9sXq+Xr776ih49euD1eklNTfX/dO3alYyMjKD7DyZvqt7Bgwd56aWXGDx4MJdeeilz5syhatWqvPzyyyfdxmWXXQb4KqPyfPnll9jtdv/UPQh8vjIyMkhNTaVDhw7s3LmTjIyMAsV7Iv/88w/btm3j0ksvJS0tzf+cZGdn06l
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XecVPX1//HXnb6zfdmlLB0RLCCgWFAUg0axRk0ssUeNRsXe0J8xWEI0SkTFqBE0dhRjidhjwfoVNaARVESagMBWtkyfub8/7s4sCwtb2ZnZeT8fDx7cnXt37pnZOzP3njmf8zFM0zQRERERERERERHpQrZkByAiIiIiIiIiIplHSSkREREREREREelySkqJiIiIiIiIiEiXU1JKRERERERERES6nJJSIiIiIiIiIiLS5ZSUEhERERERERGRLqeklIiIiIiIiIiIdDklpUREREREREREpMspKSUiIiIiIiIiIl1OSSkREZEMMXz4cO67775khyGtdN999zF8+PBOvc/PPvuM4cOH89lnn3Xq/aa6LY/9F154geHDh7NmzZoujWPixIlMmTKlS/cpIiKSyhzJDkBERCSdfP3117zwwgt8/fXXfP/990QiEb7//vuttgsEAtxyyy18/fXX/Pzzz8RiMfr378+vf/1rTj31VJxO5zb3cdttt/HEE0/w1ltvMXDgwGa3ufvuu3nwwQd5+eWX2WWXXTrt8XU35eXlzJ49m/fee4+ff/4ZwzAYMmQIhx56KKeffjp5eXnJDnGHeOqpp8jKyuKEE05IdiiAlQw788wzEz/bbDYKCgrYe++9ueyyy9hpp52SGF3q2TwZaRgGxcXFDBs2jAsuuIB99923zfc3ZcoU3nzzTRYuXNiZYYqIiHSYklIiIiJtMH/+fJ5//nmGDRtGv379WLlyZbPbBQIBli1bxkEHHUTfvn2x2WwsXLiQv/zlL3z99ddMnz59m/s45phjeOKJJ3jllVeYPHlys9vMmzePYcOGKSG1HV9//TXnn38+Pp+PY489lt133x2Ab775hocffpgvvviCRx55JMlR7hjPPPMMhYWFWyWl9t57b77++uvtJkV3pDPOOIORI0cmkrlz5szhs88+Y968eZSUlHRZHL/61a846qijcLlcXbbPtjrggAP41a9+hWmarFmzhmeeeYazzjqLhx56iAkTJiQ7PBERkU6hpJSIiOxQPp8Pr9eb7DA6zW9/+1t+//vf4/F4uOWWW7aZlCooKOC5557b6ndzc3N58sknmTJlyjYvwkeNGsXAgQN59dVXm01KLVy4kDVr1nDVVVd1+PF0VzU1NUyePBm73c6LL764VSXOFVdcsdXfJxPYbDbcbnfS9j927FgmTZqU+Hnw4MFMnTqVl156id///vddFofdbsdut3fZ/tpj0KBB/OpXv0r8/Mtf/pJjjz2Wxx9/XEkpERHpNtRTSkREOk28B86yZcu46qqr2HvvvTn11FMB+O6775gyZQqHHHIII0eO5IADDuD666+nqqqq2ftYtWoVU6ZMYezYsey1115cf/31+P3+JtsGAgFuu+029t13X8aMGcMf/vAHNmzY0GzvpA0bNnD99dez//77M2LECI466iief/75Nj/G4uJiPB5Pm38vrm/fvoCVNNmeY445huXLl7N48eKt1s2bNw/DMDj66KMJhULcc889nHDCCey1116MHj2aU089lf/7v/9rMZYpU6YwceLErW7fVi+jl19+mRNOOIE99tiDffbZhyuuuIKff/55u/t44403GD58OAsWLNhq3Zw5cxg+fDhLly4FoKysjOuvv56DDjqIESNGMH78eC688MJ29f2ZM2cOGzZsYMqUKc0ODSsuLuaiiy5K/Lytfltb9gCK9yL64osvuO2229hvv/0YO3YsN910E6FQiJqaGq699lr23ntv9t57b/76179immbi97fV02nNmjUMHz6cF154YbuP61//+hdnnnkm48aNY8SIERx55JE8/fTTW8X8ww8/sGDBAoYPH87w4cM544wzmt3/LbfcwpgxY7Z6bQFceeWVHHDAAUSj0cRt8+fP59RTT2X06NGMGTOG888/nx9++GG7MW/P2LFjAfjpp5+a3N6a12tHjv0te0rFj/nm/m3+94/FYvzzn//kqKOOYuTIkey///7cdNNNbNq0qcn9m6bJ3//+dw466CBGjRrFGWec0aHnCaxjtLCwMBFz/G/52muv8cADD3DQQQcxcuRIzjrrLFatWtWhfYmIiHQVVUqJiEinu+yyyxg4cCBXXHFF4oL8k08+4aeffuKEE06gpKSEH374geeee45ly5bx3HPPYRhGk/u4/PLL6devH1deeSVLlixh7ty5FBUVcc011yS2mTJlCq+//jq/+tWvGDVqFJ9//jnnn3/+VvGUl5dz0kknYRgGp512GkVFRXzwwQf8v//3/6irq+Pss8/eYc9FKBSirq6OYDDIN998wyOPPELfvn232Ssq7phjjmHmzJnMmzcvMewMIBqN8vrrrzN27FhKS0uprKxk7ty5HH300Zx44onU19fz/PPPc9555zF37lx23XXXTnkcDzzwAPfccw9HHHEEv/nNb6isrOTJJ5/ktNNO46WXXtpmb6aDDz4Yr9fL66+/zj777NNk3WuvvcbOO+/MsGHDALjkkktYtmwZp59+On379qWyspKPP/6Yn3/+mX79+rUp3nfffRePx8Phhx/evgfcgttuu43i4mIuueQSvvrqK5599llyc3NZuHAhffr04YorruCDDz5g9uzZDBs2jOOOO65T9vvMM8+w8847M3HiRBwOB++99x4333wzpmly2mmnAXDDDTdw66234vV6+cMf/gBYSbjmHHnkkTz11FO8//77HHHEEYnb/X4/7733Hscff3yiouill15iypQpjB8/nquvvhq/388zzzzDqaeeyosvvtjmvxHA2rVrAZocP619vdbV1XXasf/LX/6SAQMGNLlt8eLFPPbYYxQVFSVuu+mmm3jxxRc54YQTOOOMM1izZg1PPfUUS5Ys4ZlnnkkMi7znnnt44IEHmDBhAhMmTGDx4sWcc845hMPhNj9HcZs2baKmpmar946HH34YwzA455xzqKurY9asWVx99dXMnTu33fsSERHpKkpKiYhIp9tll1226pl06qmncs455zS5bfTo0Vx55ZV8+eWXiYqJuF133ZVp06Ylfq6urub5559PJKUWL17M66+/zllnncUNN9wAwGmnncb111/Pd9991+S+7r77bqLRKK+88gqFhYWANZTuyiuvZObMmZxyyikdqn7anrfffpsrr7wy8fOIESOYNm0aDsf2P4IHDRrEyJEjee2117jmmmuw2azi5k8++YSKigouu+wyAPLz83n33Xeb9MY56aSTOOKII3jiiSeaPIfttXbtWu677z4uv/zyRJID4LDDDuP444/n6aefbnL75jweDxMnTuTNN9/kxhtvTCQ4ysrK+PzzzxPDE2tqali4cCHXXnst5557buL3L7jggnbFvHz5cgYNGrTDegb16NEjkQw47bTTWL16NbNnz+bkk0/m5ptvBuDkk09m4sSJ/Otf/+q0pNSTTz7Z5Fg9/fTTOffcc3n00UcTSalDDz2UGTNmUFhY2GT4V3P22msvevXqxeuvv94kKfX+++/j8/k48sgjAaivr+fPf/4zJ554Irfeemtiu+OPP55Jkybx0EMPNbl9W+rr66msrEz0lJo2bRqGYXDYYYcltmnt67Uzj/1ddtmlSX+2yspKZsyYwbBhwxLH6BdffMHcuXO56667OOaYYxLb7rvvvpx33nm88cYbHHPMMVRWVjJr1iwOPvhgHnzwwUTCPT45QWsFg0EqKysBq5Lub3/7G9FotMnwx/h2L730UuJ5yMvL489//jNLly5NJHxFRERSlYbviYhIpzvllFO2um3zC+n4xdaoUaMAmh2ituV9jB07lurqaurq6gD48MMPARLDA+NOP/30Jj+bpslbb73FxIkTMU2TysrKxL/x48dTW1vb7P47y7777sujjz7KPffcwymnnILT6Wx2qFRzjj32WNavX8/
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XucjHX/x/H3nGePWOt8SokO5JCKiFI/RUe6o5JO3BIiUui+79JJdFMq3al00knpTKHSuRSKu7uiiAjFHrDHOc/vjzHDzi4Ws3vNzL6ej4fH49prrr2uz6zvzl7zmc/38zUFg8GgAAAAAAAAgGpkNjoAAAAAAAAA1DwkpQAAAAAAAFDtSEoBAAAAAACg2pGUAgAAAAAAQLUjKQUAAAAAAIBqR1IKAAAAAAAA1Y6kFAAAAAAAAKodSSkAAAAAAABUO5JSAAAAAAAAqHYkpQAAAPaxZcsWtWnTRm+++abRoaCSJk6cqF69esX0nG+++abatGmjLVu2xPS88ayisf/oo4+qTZs21R5LmzZt9Oijj1b7dQEA1ctqdAAAACD5BAIBvf322/rggw+0Zs0a7d69W02bNlXfvn01ZMgQORyOct8zf/58PfPMM9qyZYsaNWqkwYMHa/DgwQe8zvDhw7Vs2TJ99dVXSk9Pr/CYW265RUuWLNEXX3yhOnXqxOT5JaPNmzdrzpw5+uqrr7Rjxw7ZbDa1bt1affr00cCBA+V0Oo0OsUrMnj1brVq10jnnnGN0KJJCybBJkyZFvrZYLKpbt666deumsWPHqkGDBgZGF1+2bNmis88+O/K12WxWgwYNdOKJJ2rUqFE6/vjjD/mcgwcP1s6dO7Vw4cJYhgoA2A+SUgAAIOZKS0s1adIkdejQQZdffrnq1q2rVatW6dFHH9WyZcs0d+5cmUymyPHz5s3TnXfeqXPPPVfXXXedVq5cqXvvvVelpaUaNmzYfq9z0UUX6ZNPPtFHH32kSy65pMI4Pv74Y3Xv3p2E1AF8+umnGjNmjOx2uy6++GK1bt1aXq9X3333nf79739r/fr1uueee4wOs0o88cQTOvfcc8slpS6++GKdf/75stvthsQ1evRoNW3aVB6PR6tXr9Zbb72l7777TgsXLqwwqVtVbrzxxgP+DsaDCy64QD169FAgENBvv/2mV155RZ9//rlee+21w0pMAQCqD0kpAADiRElJiVJTU40OIyZsNpteeeUVderUKbJvwIABatKkSSQxdfrpp0uSXC6XHnroIZ155pl65JFHIscGAgE9/vjjGjhwoGrVqlXhdXr16qW0tDQtWLCgwqTU0qVLVVJSoosuuij2TzJJ/PHHHxo7dqwaN26s559/XvXr1488NmjQIG3atEmffvqpcQEaxGKxyGKxGHb9Hj16qF27dpKkyy67THXq1NFTTz2lpUuXqm/fvtUWh9VqldUa328ZTjjhBF188cWRrzt16qQbb7xRr7zyiu6++24DIwMAHAw9pQAAMEC4T8v69et1yy236JRTTtGVV14pSVq7dq0mTpyos88+W+3atVO3bt00adIk7dy5s8JzbNq0SRMnTlTnzp118skna9KkSSotLS1zrMvl0r333qvTTjtNHTt21PDhw7V9+/YK+7Zs375dkyZN0umnn662bdvq/PPP1+uvv35Iz89ut5dJSIX93//9nyTpt99+i+z79ttvtWvXrsjzDxs0aJBKSkoOmBBxOp3q3bu3vvnmG+Xl5ZV7fOHChUpLS1OvXr20a9cuTZs2TRdeeKE6duyoTp06aejQoVq7du1Bn8/+phJW1MsoEAjoueee0/nnn6927drp9NNP1x133KHdu3cf8BpPP/202rRpo61bt5Z7bMaMGWrbtm3kHL///rtuuukmdevWTe3atVOPHj00duxYFRYWHvS5RJszZ45KSkp03333lUlIhbVo0ULXXHONpAP324oeS+HxuXHjRo0fP14nn3yyunTpopkzZyoYDOrPP//UjTfeqE6dOqlbt2565plnypxvfz2dvv32W7Vp00bffvvtAZ/X008/rcsvv1ynnXaaTjrpJPXv31+LFy8uF3NJSYneeusttWnTRm3atNHEiRMrvP4NN9xQZqrYvgYOHKj+/fuX2ffOO++of//+Oumkk3Tqqadq7Nix+vPPPw8Y84F07txZUiiJuK/ffvtNo0eP1qmnnqp27dqpf//+Wrp0aZljjmTsR/eUmjhxYuRnFf1v3/9/j8ejRx55RP/3f/+ntm3bqmfPnnrggQfk8XjKnN/j8WjKlCnq0qVL5LXpr7/+OuSfz766dOkiSZH/u/D/5Xfffaf7779fXbp0UYcOHTRy5Ejl5+cf0bUAAEcmvj/2AAAgyY0ZM0YtWrTQ2LFjFQwGJUlff/21/vjjD/Xv31/16tXTunXr9Nprr2n9+vV67bXXykx7k6Sbb75ZTZs21bhx4/Tzzz9r/vz5ysrK0q233ho5ZuLEiVq0aJEuvvhitW/fXitWrKhwSk5ubq4GDBggk8mkQYMGKSsrS59//rn+8Y9/qKioSNdee+0RPd/c3FxJKjOV7ueff5YktW3btsyxJ554osxms9asWVOmCiLahRdeqLfeekuLFi3SVVddFdm/a9cuffnllzr//PPldDq1bt06ffTRRzrvvPPUtGlT5ebm6tVXX9VVV12l9957L2a9eu644w699dZb6t+/vwYPHqwtW7bopZde0s8//6xXXnlFNputwu/r06eP/v3vf2vRokUaOnRomccWLVqkbt26qVatWvJ4PBoyZIg8Ho+uuuoqZWdna/v27fr0009VUFCgjIyMQ4r3k08+UbNmzSpMIsbC2LFjdcwxx+iWW27RZ599pscff1y1a9fWvHnz1KVLF40fP14LFizQtGnT1K5dO51yyikxue7cuXPVq1cvXXjhhfJ6vXrvvfc0ZswYPfHEEzrzzDMlSQ888ID++c9/6qSTTtKAAQMkSc2bN6/wfH369NGECRP0ww8/6KSTTors37p1q1avXq3bbrstsu/xxx/Xww8/rD59+uhvf/ub8vPz9eKLL2rQoEF6++23lZmZecjPJ5ys3Pd7161bpyuuuEINGjTQ3//+d6WmpmrRokUaOXKkHn300UgS+I8//ojZ2B84cKC6du1aZt8XX3yhBQsWKCsrS1IoMXvjjTfqu+++04ABA3TMMcfo119/1fPPP6/ff/9d//nPfyLf+49//EPvvvuuLrjgAnXq1EnffPPNEU8X3Lx5sySpdu3aZfbfe++9yszM1KhRo7R161Y9//zzuvvuuzVz5swjuh4A4PCRlAIAwEDHHXecZsyYUWbflVdeqeuvv77Mvg4dOmjcuHH67rvvIhUTYccff7ymTJkS+XrXrl16/fXXI0mpn376SYsWLdI111yj22+/XVKoCmnSpEnlKiUeeugh+f1+LViwIJI4uuKKKzRu3DjNmjVLl19++RE1vJ4zZ47S09PVo0ePyL6cnJxIM+d92e121a5dWzt27DjgObt06aJ69epp4cKFZZJSixcvltfr1YUXXigpVBWzZMkSmc17C8Uvvvhi9enTR6+//rpGjhx52M8rbOXKlZo/f76mT58eua4knXbaaRo6dKgWL15cZv++GjdurA4dOuj9998vk5T64Ycf9Mcff2jUqFGSQpUxW7Zs0cMPP6zzzjsvclz48UNRVFSk7du377cCKBZOOumkyBSqgQMHqlevXpo6darGjRsXST5ccMEFOuOMM/TGG2/ELCm1ZMmSMmN10KBB6t+/v5599tlIUuriiy/W5MmT1axZswMmPiXpnHPOkd1u16JFi8okpRYtWiSTyaQ+ffpICiWPHn30Ud18880aPnx45LjevXurX79+evnll8vs35+ioiLl5+fL4/Hov//9r2bNmiW73a6zzjorcsx9992nRo0a6Y033oj0vrryyit1xRVXaPr06ZGkVCzHfseOHdWxY8fI15s2bdI999yjbt266fLLL5ckLViwQF9//bVeeOGFMq9Xxx57rO688059//336tSpk9auXat3331XV155pe68805Jof+nW265Rb/88kulYyotLVV+fr4
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKMAAAK1CAYAAAAUpS2tAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XeYVOXZx/Hvmb6zvcAunZUmTWmKIoiiRtFgS9HYkleNmogajYWoESzBkhiNYtSIJaKJxsQSG2osiBUL2FDpnV22sG16Oe8fszOw1AF2d2Z2f5/r4mJ25plzntmdM3Pmnvu+H8M0TRMREREREREREZF2YEn1BEREREREREREpPNQMEpERERERERERNqNglEiIiIiIiIiItJuFIwSEREREREREZF2o2CUiIiIiIiIiIi0GwWjRERERERERESk3SgYJSIiIiIiIiIi7UbBKBERERERERERaTcKRomIiIiIiIiISLtRMEpERCRDDBo0iJtuummft7Nu3ToGDRrEww8/3Aqzko8//phBgwbx8ccfp3oqkqSzzz6bs88+u1W3ee+99zJo0KBW3Wa629Fzf9q0aUyaNKld5xF/TXv22Wfbdb8iIrL3bKmegIiISKZ78cUXqamp4Re/+EWqp9Lu3nvvPV555RW+/PJLli9fTrdu3Xjrrbd2e7///ve/XHXVVbjdbhYuXLhH+1y6dCn33nsv33zzDdXV1bhcLvr3789555232w/BU6ZMobGxkbfffhvDMHY45vTTT2fNmjW8++672Gw6VdqZb7/9locffphPPvmEmpoa3G43Q4YMYcqUKZx88slYrdZUT7HV+Xw+Zs+ezcEHH8zYsWNTPR0gFgSbNWtW4mebzUZpaSmTJk3i0ksvJS8vL4WzSy8ff/wx55xzTuJnm81GWVkZo0eP5pJLLqFXr157vM1JkyYxYMAAHnzwwdacqohIh6czLBERkX300ksvsXTp0k4ZjHrppZd45ZVXGDJkCF27dk3qPh6Phz/+8Y+43e692ueGDRvweDyccsopdO3aFZ/Px+uvv86vfvUrbrrpJk477bSd3nfKlCnceeedfPrppxx00EHb3b5u3ToWLVrEWWedpUDULjzzzDNMnz6d4uJiTjrpJPr06YPH4+Gjjz7iuuuuo6qqiosuuijV02x1Pp+PWbNmMXXq1O2CUb/61a+44IILUjQzmDFjBm63G5/Px4cffsicOXP45ptv+Oc//9mu87j55psxTbNd97mnzj77bIYPH044HGbx4sU8/fTTzJs3j//+97+UlpamenoiIp2CzrJERERkr11++eXcfPPN2O12LrzwQpYuXbrb+9x///1kZ2czduxY3nzzzT3e58SJE5k4cWKL68466yxOPfVUHn300d0Go/785z/z4osv7jAY9fLLL2OaJlOmTNnjeXUWixYtYvr06YwYMYK//e1v5OTkJG77xS9+wVdffZXU86CjsdlsKQ1gHnvssRQVFQGx7L7LL788kbV4wAEHtNs87HZ7u+1rb40ZM4bjjjsOgB/96Ef07duXW265heeff54LL7wwxbMTEekc1DNKRERkF5qamvjDH/7ApEmTGDZsGIceeij/93//xzfffAPEvmF/5513WL9+PYMGDWLQoEEtSsVqamq49tprGTduHMOHD+fEE0/kueee224/0WiUv//970yZMoXhw4dzyCGHcN555/HVV19tN/Z///sfP/zhDxk2bBgnnHAC77777j4/TtM0+f3vf8+wYcN4/fXXk75faWnpHn34XLVqFY899hi/+93vWvWDu9VqpVu3bjQ2Nu5yXLdu3TjooIN47bXXCIVC293+0ksv0bt3bw488EDWr1/PjBkzOPbYYznggAMYO3Ysl156KevWrdvtfCZNmsS0adO2u35HvYqCwSD33HMPxxxzDMOGDWPixInccccdBIPBXe7jpptuYuTIkfh8vu1uu+KKKzjssMOIRCIAfPXVV5x33nmMHTuWAw44gEmTJvG73/1ut49jR2bNmoVhGPzpT39qEYiKGz58OKeeeiqw835aO+rxM23aNEaOHMmGDRu48MILGTlyJBMmTODJJ58E4Pvvv+ecc85hxIgRHHnkkbz44osttrmznk3PPvssgwYN2uXfLRgM8pe//IVTTz2V0aNHM2LECM444ww++uijFnM+9NBDE7+D+PF+77337nD/P/zhD3fYlyoajTJhwgQuvfTSFtc99thjnHDCCQwfPpxx48Zxww03UF9fv9M5786YMWMAWLNmTYvrv/jiC8477zxGjx7NgQceyFlnncVnn33WYsy+PPe37Rl19tlnJ35X2/7b+u/f0NDAH/7wByZOnMiwYcM45phj+Nvf/kY0Gm2x/YaGBqZNm8bo0aMZM2YM11xzzW6P+9055JBDABKPL/63XL16NdOmTWPMmDGMHj2a3/3udzs83kREZM8pM0pERGQXpk+fzmuvvcZZZ51Fv379qKur47PPPmP58uUMHTqUiy66iMbGRioqKhIf7rOzswHw+/2cffbZrFmzhjPPPJOePXsyd+5cpk2bRkNDAz//+c8T+7nuuut49tlnOfzww/nxj39MJBLh008/5YsvvmD48OGJcZ999hmvv/46Z5xxBtnZ2cyZM4dLL72Ut99+m8LCwr16jJFIhGuvvZZXXnmFWbNmccQRR+z9L2w3Zs6cydixY5k4cSKvvvrqPm3L6/Xi9/tpamrirbfe4t1332Xy5Mm7vd+UKVP4/e9/z3vvvceRRx6ZuP77779nyZIlXHzxxUAsgLNw4UJOOOEEysrKWL9+Pf/85z8555xzePnll8nKytqn+UMsCPGrX/2Kzz77jJ/+9Kf069ePJUuW8Pe//51Vq1bx17/+daf3Pf7443nyySd55513Wjxun8/H22+/zSmnnILVaqWmpobzzjuPwsJCLrjgAvLy8li3bh1vvPHGHs/X5/Px0UcfMWbMGLp3775Xj3lXIpEIv/zlLxkzZgxXXnklL774IjfddBNZWVncddddTJkyhR/84Ac89dRTXHPNNYwYMWKv+vxsq6mpiWeeeYYf/vCH/OQnP8Hj8fDvf/+b888/n2eeeYbBgwdTVFTEjBkzmDFjBscccwzHHHMMwE6blk+ePJlZs2ZRVVVFly5dEtd/9tlnbNq0ieOPPz5x3Q033MBzzz3Hqaeeytlnn826det48sknWbx4Mf/85z/3KtsoHljZumfUhx9+yC9/+UuGDRvG1KlTMQyDZ599lp///Of84x//SGRQteZz/6KLLuLHP/5xi+v++9//8t5771FcXAzEnldnnXUWlZWVnH766XTr1o2FCxfy5z//maqqKq677jogFjT/9a9/zWeffcbpp59Ov379eOONN7jmmmv2+PeztXjArqCgoMX1v/nNb+jZsydXXHEFixcv5plnnqGoqIirrrpqn/YnIiIKRomIiOzSvHnz+OlPf9oiy+WXv/xl4vJhhx3G448/TkNDAyeddFKL+z799NMsX76cP/7xj5x44olArHzm7LPP5u677+ZHP/oROTk5fPTRRzz77LOcffbZXH/99Yn7n3vuudv1Xlm+fDmvvPIKvXv3BmDs2LGcdNJJvPzyy5x11ll7/PjC4TBXXXUVb731Fvfffz/jx4/f420k65133uH999/nhRdeaJXt3XbbbTz99NMAWCwWjjnmGG644Ybd3u/YY4/l5ptv5qWXXmoRjHrppZcAEiV6RxxxRKKUJ+7II4/ktNNO47XXXuPkk0/e58fw4osv8sEHHzBnzpxEJgvAgAEDmD59Op9//jmjRo3a4X1Hjx5NaWkpr776aotg1DvvvIPX600EOxYuXEh9fT0PP/xwi8Dm5ZdfvsfzXb16NaFQiIEDB+7xfZMRCAQ48cQTE6VSU6ZMYcKECVx77bX8+c9/TjymcePGMXnyZJ5//nkuueSSfd5vfn4+b731Fg6HI3HdT3/6UyZPnsycOXOYOXMmbrebY489lhkzZjBo0KDtjvdtHX/88dxzzz2JYHbcK6+8gtvtTgR9P/30U5555hn+9Kc/tSgPHTt2LOeffz5z585Nqmw0nkUVDxj
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKAAAAK1CAYAAAD/kpauAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VGXax/HvmZ5OGoTQpEhR6lqQrq5rwYquZcWylrWsiF3R3VVsiAVlF3xtoK4VdW2rotgVBQuuiAULvZckhNTp5/1jmIFAgJSZzEzm97kuLk5mnpy5M2dOMuee+7kfwzRNExERERERERERkRixxDsAERERERERERFp3ZSAEhERERERERGRmFICSkREREREREREYkoJKBERERERERERiSkloEREREREREREJKaUgBIRERERERERkZhSAkpERERERERERGJKCSgREREREREREYkpJaBERERERERERCSmlIASEZG469WrF7fddluz97NmzRp69erFzJkzoxBV63X44YczYcKEeIchDfTKK6/Qq1cv1qxZE7V9hs+VV155JWr7TAY7v/a//PJLevXqxZdfftmicZx99tmcffbZLfqYIiIi8aYElIiI7NYbb7zBk08+Ge8w4uLss8+mV69eu/y74IILGr2vSZMmMWbMGA4++GAGDBjAMcccw7Rp06iurt7j9z3xxBP06tWLefPm7XbMiy++SK9evfjggw8aHVcqqaqqYvr06ZxwwgkMGjSI/v37c9xxx3HvvfeycePGeIcXM4l2DocTX+F/vXv35uCDD+bCCy/k22+/jXd4Cefwww+v83wNGTKEM888k/fee69J+5s2bRq9evWirKwsypGKiIjsnS3eAYiISOJ68803+e233/jzn/8c71DioqioiKuvvrrObW3btm30fr7//nsOOOAATj75ZJxOJz/99BOPPvoo8+bN49lnn8Viqf/zoNGjR3PPPffwxhtvMHTo0HrHvPHGG7Rp04aRI0c2Oq5UsXr1av785z+zfv16jj76aE4//XTsdju//PIL//nPf3j//feZM2dOvMOMid2dwx06dGDRokXYbPF5K3jccccxcuRIgsEgK1as4LnnnuOcc87hP//5D7169WqxOA466CAWLVqE3W5vscdsrD59+nDeeecBsGnTJl544QXGjRvHxIkT+dOf/hTn6ERERBpOCSgREZHdyMrK4sQTT2z2fp5//vldbuvcuTN33303ixYtYuDAgfV+X7t27Rg8eDDvvfcet956Kw6Ho879GzduZMGCBZx22mkJfQEdT36/n3HjxlFaWspTTz3FgQceWOf+q666isceeyxO0cWPYRg4nc64Pf5+++1X59w64IAD+Mtf/sLzzz/PxIkTWywOi8US1+ehIdq1a1fnuTrppJM48sgjefLJJ5WAEhGRpKIpeCIiKaqqqoo777yTww8/nL59+zJkyBDOO+88fvzxRyA0Be3jjz9m7dq1kekfhx9+eOT7S0tLuemmmxg6dCj9+vXjhBNO4NVXX93lcYLBIP/+9785/vjj6devH4cccggXXHAB33///S5j33//fY477jj69u3Lsccey6efftrsn9M0Tf7xj3/Qt29f3n333UZ/v9/v3+tUuabo0KEDABUVFXscd8IJJ1BZWcnHH3+8y31vvfUWwWCQ448/HoCZM2dyxhlnMHjwYPr378/JJ5/MO++8s9dYwtNydra73kOffPIJZ555JgMHDmTQoEFcdNFF/Pbbb3t8jO+//55evXrV+xqZO3cuvXr14qOPPgL2/tpsjHfffZeff/6ZSy65ZJfkE0BmZiZXXXVV5Ovd9cfauWdPuHfQ7NmzmT59OiNGjGDQoEGMHz+eyspKvF4vd955J0OGDGHQoEHceOONeL3eyPfvqQdTr169mDZt2h5/rvfff5+LLrqI4cOH07dvX4444ggefPBBAoFAnZh3dw7v/PgzZ86kV69erF27dpfHmjJlCn379mXr1q2R27777jsuuOACDjjgAAYMGMBZZ53FN998s8eY9yR8bFavXl3n9oqKCu68805GjRpF3759+cMf/sCjjz5KMBisM66pr/2de0CFX/P1/du5Z9Prr7/OySefTP/+/Tn44IO56qqrWL9+/S6P8cILL3DEEUfQv39//vjHP7JgwYJGPTc7KywspFu3bpFjtWPvu/Bj9e3bl1NOOYVFixY167FERESiSRVQIiIp6pZbbmHOnDmcddZZdO/enfLycr755huWLl3K/vvvzyWXXEJlZSUbNmzgxhtvBCAjIwMAt9vN2WefzapVqxg7diwdO3bknXfeYcKECVRUVHDuuedGHudvf/sbr7zyCiNHjuSPf/wjgUCABQsW8N1339GvX7/IuG+++YZ3332XM888k4yMDJ5++mnGjx/PRx99RG5ubpN+xkAgwE033RRJEhx66KGN+v4VK1YwcOBAfD4fBQUFnHrqqVx22WVNqjby+/1UVFTg8/n47bffmDp1KhkZGfTv33+P33fkkUcyceJE3nzzTY488sg697355pt06NCBAw44AICnnnqKww8/nOOPPx6fz8dbb73FFVdcwSOPPNLon313XnvtNSZMmMDw4cO59tprqa2t5fnnn+fMM8/k1VdfpWPHjvV+X79+/ejUqRNvv/02Y8aMqXPf7NmzycnJYfjw4cDeX5uNEe6NFY1Ktvo8+uijuFwuLrroIlauXMkzzzyDzWbDMAwqKioYN24c3333Ha+88godOnRg3LhxUXncV199lfT0dM477zzS09P54osv+Ne//kVVVRU33HADwB7P4Z0dc8wx3Hvvvbz99ttceOGFde57++23GTZsGDk5OQDMnz+fv/zlL/Tt25dx48ZhGAavvPIK5557Ls8999xeX9P1CSdTsrOzI7fV1tZy1llnsXHjRs444wzat2/Pt99+y/3338/mzZv529/+Fhkbrdf+QQcdxD333FPntnXr1jF16lTy8vIitz300EP885//5JhjjuGPf/wjZWVlPPPMM4wdO5bXXnst8nO89NJL3HzzzQwaNIhzzz2X1atXc+mll5KTk0P79u0b/TwB+Hw+NmzYQJs2berc/uabb1JdXc3pp5+OYRjMmDGDyy+/nPfff18VkiIikhCUgBIRSVGffPIJp512Wp1qj7/85S+R7WHDhvHUU09RUVGxy8X7Cy+8wNKlS7n33ns54YQTADjjjDM4++yzmTp1KqeccgqZmZl88cUXvPLKK5x99tn8/e9/j3z/+eefj2madfa5dOlSZs+eTefOnQEYPHgwJ554Im+99RZnnXVWo38+v9/Pddddx4cffshDDz0USW40VKdOnRg8eDA9e/akpqaGOXPm8NBDD7FixQqmTp3a6Hh++OEHTj/99MjXXbt25aGHHtrlInJnmZmZHHbYYXz00UdUVVWRmZkJwLJly/jxxx+5+OKLMQwDgDlz5uByuSLfO3bsWE4++WSeeOKJqCSgqqurufPOOzn11FO5/fbbI7ePGTOGo48+mkceeaTO7TsbPXo0jz/+OFu3bo0kM7xeL++//z5/+MMfIhfJe3ttNsayZcvIyspq8sX+3gQCAZ5++ulI7Fu2bOGtt95ixIgRkal9Y8eOZdWqVbzyyitRS0BNmTKlzrH+05/+xM0338zzzz/PVVddhcPh2OM5vLPi4mIGDhzI7Nmz6ySgFi1axOrVqyNxm6bJxIkTGTx4MDNmzIi89s444wyOPfZYpk6dyuOPP77X+GtraykrK4v0gJo8eTIARx11VGTME088werVq3n11VfZZ599Io/Ttm1bZs6cyfnnnx85rtF67Xfq1IlOnTpFvvZ4PPzpT3+ibdu2kd9ha9euZdq0aVx55ZVccsklkbFHHnkkY8aM4bnnnuOSSy7B5/PxwAMP0KdPH5566qnIFNoePXrwj3/8o8GvSb/fH2kavmnTJh599FFKSkp2qchat24d7777buTc6tq1K3/961/57LPPOOywwxr8HIiIiMSKpuCJiKSo7OxsvvvuuyatAPbpp59SWFjIcccdF7nNbrdz9tlnU1NTw9dffw2Epj8ZhlHvRXf4wjV
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8U9X7wPFPdpPuBYUO9t5DkCVDEAFxIAoqqL+vqKiAijIdICKKIiKggoKoiOLCgQxB2YLIkKEoexZaulfa7N8foaGhK92lfd6vV18kuc8999w0lyZPznmOwuFwOBBCCCGEEEIIIYQQohwpK7oDQgghhBBCCCGEEKL6kaSUEEIIIYQQQgghhCh3kpQSQgghhBBCCCGEEOVOklJCCCGEEEIIIYQQotxJUkoIIYQQQgghhBBClDtJSgkhhBBCCCGEEEKIcidJKSGEEEIIIYQQQghR7iQpJYQQQgghhBBCCCHKnSSlhBBCCCGEEEIIIUS5k6SUEEIIUQU1adKEGTNmlLidCxcu0KRJE5YuXVoKvRK7d++mSZMm7N69u6K7Ijw0cuRIRo4cWaptLliwgCZNmpRqm5VdXq/9yZMn06dPn3LtR/b/aatWrSrX4wohhMibuqI7IIQQQlQnq1evJiEhgYcffriiu1KuMjMzWbVqFb/99hvHjh0jIyODOnXqcO+99zJs2DBUKpVb/AcffMDBgwc5dOgQCQkJjBkzhrFjxxb5uBcuXODmm2/Oc9vcuXMZNGhQvvsOHjyYtLQ0Nm/ejEKhyDNm+PDhnDt3jm3btqFWy9uq/Pz7778sXbqUPXv2kJCQgMFgoHnz5gwePJg777wz1++/KsjMzGTJkiV06tSJzp07V3R3AGcybOHCha77arWamjVr0qdPH8aNG4efn18F9q5y2b17Nw8++KDrvlqtJiwsjA4dOjB27FgiIyOL3GafPn1o1KgRixcvLs2uCiHEdU3ePQkhhBDl6Oeff+b48ePVLil1/vx5Xn31Vbp06cLDDz+Mj48PO3bs4JVXXuHgwYPMnj3bLX7evHmEhobSrFkzduzYUeLj33bbbdx0001uj7Vt27bAfQYPHszbb7/N3r17ueGGG3Jtv3DhAgcOHGDEiBGSkCrAN998w7Rp0wgODuaOO+6gTp06ZGRk8Mcff/DCCy8QFxfH6NGjK7qbpS4zM5OFCxcyZsyYXEmpJ554gscee6yCegbTp0/HYDCQmZnJrl27WL58Of/88w9ffvllufbj1VdfxeFwlOsxi2rkyJG0atUKq9XKkSNH+Oqrr9i6dSs//fQTNWvWrOjuCSHEdU/eQQkhhBCizIWEhLB69WoaNWrkemz48OFMmTKFVatW8eSTT1KnTh3Xtt9++42IiAgSExPp0qVLiY/fvHlz7rjjjiLtM3jwYObOncvq1avzTEqtWbMGh8PB4MGDS9y/qurAgQNMmzaNtm3b8uGHH+Lj4+Pa9vDDD3P48GGOHz9egT2sGGq1ukITmf379ycoKAhwXofPPvssa9eu5dChQ7Ru3brc+qHRaMrtWMXVsWNHbr31VgDuvvtu6taty8yZM/nhhx94/PHHK7h3Qghx/ZOaUkIIIUQpSU9P57XXXqNPnz60bNmSLl268H//93/8888/gPMb9y1bthAdHU2TJk1o0qSJWz2VhIQEpk6dSteuXWnVqhW3334733//fa7j2O12Pv30UwYPHkyrVq248cYbeeSRRzh8+HCu2F9//ZXbbruNli1bMmjQILZt21bi83Q4HLz00ku0bNmSDRs2eLRPUFCQW0IqW79+/QA4efKk2+MREREl7ue1jEYjZrPZ4/hatWpxww038Msvv2CxWHJt//nnn4mKiqJNmzZER0czffp0+vfvT+vWrencuTPjxo3jwoULhR6nT58+TJ48OdfjedUyMpvNzJ8/n379+tGyZUt69uzJm2++Weh5zZgxg3bt2pGZmZlr2/jx4+nWrRs2mw2Aw4cP88gjj9C5c2dat25Nnz59mDJlSqHnkZeFCxeiUCiYM2eOW0IqW6tWrRgyZAiQf72tvGoATZ48mXbt2nHx4kUef/xx2rVrR48ePVixYgUAR48e5cEHH6Rt27b07t2b1atXu7WZX02nVatW0aRJkwJ/b2azmXfffZchQ4bQoUMH2rZty/33388ff/zh1ufsZOrChQtd1/uCBQvyPP5tt92WZ90qu91Ojx49GDdunNtjn3zyCYMGDaJVq1Z07dqVl19+mZSUlHz7XJiOHTsCcO7cObfHDx48yCOPPEKHDh1o06YNI0aMYN++fW4xJXntX1tTauTIka7n6tqfnL//1NRUXnvtNXr27EnLli3p168fH374IXa73a391NRUJk+eTIcOHejYsSOTJk0iLS2tyM9PTjfeeCOA6/yyf5dnz55l8uTJdOzYkQ4dOjBlypQ8rzchhBDuZKSUEEIIUUqmTZvGL7/8wogRI2jQoAHJycns27ePkydP0qJFC0aPHk1aWhoxMTGuD/ne3t4AZGVlMXLkSM6dO8cDDzxAREQE69evZ/LkyaSmpvLQQw+5jvPCCy+watUqbrrpJoYOHYrNZmPv3r0cPHiQVq1aueL27dvHhg0buP/++/H29mb58uWMGzeOzZs3ExgYWKxztNlsTJ06lbVr17Jw4UJ69epV/CcMiI+PByh2fzy1cOFC3nzzTRQKBS1atODZZ5+le/fuhe43ePBgXnrpJXbs2EHv3r1djx89epRjx47x1FNPAc5Ezl9//cWgQYMICwsjOjqaL7/8kgcffJA1a9ag1+tLfA52u50nnniCffv2ce+999KgQQOOHTvGp59+ypkzZ3j//ffz3XfgwIGsWLGCLVu2MGDAANfjmZmZbN68mbvuuguVSkVCQgKPPPIIgYGBPPbYY/j5+XHhwgU2btxY5P5mZmbyxx9/0LFjR2rXrl2scy6IzWbj0UcfpWPHjjz//POsXr2aGTNmoNfreeeddxg8eDC33HILK1euZNKkSbRt27ZYdYCulZ6ezjfffMNtt93GPffcQ0ZGBt9++y2jRo3im2++oVmzZgQFBTF9+nSmT59Ov379XMnX/IqbDxgwgIULFxIXF0doaKjr8X379nH58mUGDhzoeuzll1/m+++/Z8iQIYwcOZILFy6wYsUKjhw5wpdfflms0UfZCZacNaV27drFo48+SsuWLRkzZgwKhYJVq1bx0EMP8cUXX7hGVJXma3/06NEMHTrU7bGffvqJHTt2EBwcDDhfVyNGjCA2Npbhw4dTq1Yt/vrrL+bOnUtcXBwvvPAC4EyeP/nkk+zbt4/hw4fToEEDNm7cyKRJk4r8/OSUnbgLCAhwe/yZZ54hIiKC8ePHc+TIEb755huCgoKYMGFCiY4nhBBVnSSlhBBCiFKydetW7r33XrdRL48++qjrdrdu3fjss89ITU3NNZXsq6++4uTJk7z11lvcfvvtgHNazciRI5k3bx533303Pj4+/PHHH6xatYqRI0fy4osvuvb/3//+l6s2y8mTJ1m7di1RUVEAdO7cmTvuuIM1a9YwYsSIIp+f1WplwoQJbNq0iQ8++MCjpE5BzGYzn376KREREW7JtNKkVCrp3r07ffv2pWbNmpw/f55PPvmERx99lA8++KDQpFr//v159dVX+fnnn92SUj///DOAa+per169XFN8svXu3Zthw4bxyy+/cOedd5b4XFavXs3OnTtZvny5a2QLQKNGjZg2bRr79++nffv2ee7boUMHatasybp169ySUlu2bMFoNLqSHn/99RcpKSksXbrU7Xfy7LPPFrm/Z8+exWKx0Lhx4yLv6wmTycTtt9/umkI1ePBgevTowdSpU5k7d67rnLp27cqAAQP44YcfilUs/1r+/v5s2rQJrVbreuzee+9lwIABLF++nFmzZmEwGOjfvz/Tp0+nSZMmhU4dHThwIPPnz3cltbOtXbsWg8Hgep3u3buXb775hjlz5rhNG+3cuTOjRo1i/fr1Hk0nzR5VlZ04/OKLLwgKCnJNU3U4HEyfPp3OnTuzZMkSV6H/4cOHM2jQIObNm8fHH38MlO5rv1u3bm739+/
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
2025-07-15 22:45:51 +08:00
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKMAAAK1CAYAAAAUpS2tAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VGXax/HvmT6THgIJHSSAhS6iKIiyuorK2ta2tl27K2JXZF3FsoiubRVddVHX3lbRtaKvBXHtBbErgnQCISFt+sx5/5jMQCDABJIpye9zXbmukzPPnLkzOcmZued+7scwTdNEREREREREREQkBSzpDkBERERERERERDoOJaNERERERERERCRllIwSEREREREREZGUUTJKRERERERERERSRskoERERERERERFJGSWjREREREREREQkZZSMEhERERERERGRlFEySkREREREREREUkbJKBERERERERERSRklo0RERCSrfPzxxwwcOJCPP/443aFIkk4++WROPvnkVj3mXXfdxcCBA1v1mJmuuXN/ypQpjB8/PqVxLF++nIEDB/L888+n9HFFRKT9sKU7ABEREclsy5cv5ze/+U2zt912220ceuihW7zvxIkTqaur45133sEwjGbHHH/88SxdupT33nsPm00vTbbk+++/54EHHuDTTz9l3bp1eDwedt11VyZOnMgRRxyB1WpNd4itzufzMWvWLEaNGsWee+6Z7nCAWBJs5syZie9tNhulpaWMHz+eyZMnk5+fn8boMsvHH3/MKaeckvjeZrNRVlbG7rvvzvnnn0/Pnj1bfMzx48fTv39/7rvvvtYMVUREUkyv+ERERCQphx12GPvuu2+TfcOGDdvqfSZOnMitt97KZ599xh577LHZ7cuXL2f+/PmcdNJJSkRtxbPPPss111xDp06dOPzww+nduzcNDQ189NFH/OUvf2Ht2rWcc8456Q6z1fl8PmbOnMmkSZM2S0ade+65nHXWWWmKDKZNm4bH48Hn8/Hhhx/y6KOP8u233/Lkk0+mNI7rr78e0zRT+pgtdfLJJzN48GDC4TDfffcdTz/9NHPnzuW///0vpaWl6Q5PRETSQK/6REREsojX68Xj8aTlsXfddVcOP/zwFt1n4sSJ3Hbbbbz00kvNJqNeeeUVTNNk4sSJrRVmuzN//nyuueYahg0bxv33309ubm7itj/+8Y98/fXX/Pzzz2mMMD1sNltaE5gHHXQQxcXFQKy676KLLuLVV19lwYIFDBkyJGVx2O32lD3W9ho5ciQHH3wwAEcffTR9+vThhhtu4IUXXuDss89Oc3QiIpIO6hklIiKSoeI9cRYuXMgll1zCHnvswR/+8AcAwuEwd999NwcccACDBg1i/Pjx3HbbbQSDwc2OM3fuXE466SSGDx/OiBEjOProo3nppZe2Kyav19vsY2xJ165d2WOPPZgzZw6hUGiz219++WV69erF0KFDWbFiBdOmTeOggw5iyJAh7LnnnkyePJnly5dv83HGjx/PlClTNtvfXK+iYDDInXfeyYEHHsigQYMYN24cN9988zZ/ruuuu47hw4fj8/k2u+3iiy9mn332IRKJAPD1119z+umns+eeezJkyBDGjx/PlVdeuc2fozkzZ87EMAxuueWWJomouMGDB3PUUUcBW+6n1VyPnylTpjB8+HBWrlzJ2WefzfDhwxk7diyPP/44AD/++COnnHIKw4YNY//999/snNlSz6bnn3+egQMHbvX3FgwG+cc//sFRRx3F7rvvzrBhw/jDH/7ARx991CTm0aNHJ56DgQMHMnDgQO66665mH/+www5rti9VNBpl7NixTJ48ucm+f//73xx66KEMHjyYvffem6uvvpqampotxrwtI0eOBGDp0qVN9n/11Vecfvrp7L777gwdOpSTTjqJzz//vMmYHTn3N+0ZdfLJJyeeq02/Nv7919bW8re//Y1x48YxaNAgDjzwQO6//36i0WiT49fW1jJlyhR23313Ro4cyRVXXEFdXV2Ln5+N7bXXXgCJny/+u1yyZAlTpkxh5MiR7L777lx55ZXN/r2JiEj2U2WUiIhIhrvgggvo3bs3F110UWI6zlVXXcXs2bM56KCD+NOf/sSCBQu47777+OWXX7j77rsT933++eeZOnUq/fv35+yzzyYvL4/vv/+eefPmtbgaaebMmdx8880YhsFuu+3GRRddxJgxY7Z5v4kTJ/LXv/6V999/n/333z+x/8cff+Snn37ivPPOA2IJnC+//JJDDz2UsrIyVqxYwZNPPskpp5zCK6+8gtvtblG8zYlGo5x77rl8/vnnHHvssfTr14+ffvqJhx9+mF9//ZV77rlni/c95JBDePzxx3n33XeZMGFCYr/P5+Odd97hyCOPxGq1sm7dOk4//XSKioo466yzyM/PZ/ny5bz55pstjtfn8/HRRx8xcuRIunXrtl0/89ZEIhHOPPNMRo4cyaWXXspLL73Eddddh9vt5vbbb2fixIn89re/5amnnuKKK65g2LBh29XnZ1P19fU8++yzHHbYYRxzzDE0NDTwn//8hzPOOINnn32WXXbZheLiYqZNm8a0adM48MADOfDAAwG22LR8woQJzJw5k7Vr19K5c+fE/s8//5w1a9ZwyCGHJPZdffXVzJ49m6OOOoqTTz6Z5cuX8/jjj/Pdd9/x5JNPble1UTyxsnHPqA8//JAzzzyTQYMGMWnSJAzD4Pnnn+fUU0/liSeeSFRQtea5f8455/D73/++yb7//ve/vP/++3Tq1AmInVcnnXQSFRUVHH/88XTt2pUvv/yS2267jbVr1/KXv/wFANM0+fOf/8znn3/O8ccfT79+/XjzzTe54oorWvz8bCyesCssLGyy/8ILL6RHjx5cfPHFfPfddzz77LMUFxdz2WWX7dDjiYhI5lEySkREJMPtvPPO3HrrrYnvf/jhB2bPns0xxxzDDTfcAMCJJ55IcXExDz74IB999BF77bUXdXV13HDDDQwZMoRHH30Up9OZOEZLesxYLBbGjBnDAQccQGlpKcuWLePf//43Z555Jv/85z/Zb7/9tnr/gw46iOuvv56XX365STLq5ZdfBkgkxfbbb7/EVJ64/fffn+OOO445c+ZwxBFHJB3zlrz00kt88MEHPProo4lKFoD+/ftzzTXX8MUXXzBixIhm77v77rtTWlrKa6+91iQZ9e677+L1ehPJji+//JKamhoeeOABBg8enBh30UUXtTjeJUuWEAqFGDBgQIvvm4xAIMDvfve7xFSpiRMnMnbsWKZOncptt92W+Jn23ntvJkyYwAsvvMD555+/w49bUFDA22+/jcPhSOw79thjmTBhAo8++ijTp0/H4/Fw0EEHMW3aNAYOHLjNKaKHHHIId955J3PmzOGkk05K7H/11VfxeDyJ8/Szzz7j2Wef5ZZbbmmSkN1zzz0544wzeP3115NK1MarqOIJwyeeeILi4uLEdFTTNJk2bRp77rkns2bNSjTwP/744zn00EO54447ePDBB4HWPff32WefJt9/8cUXfPzxxxx99NGMGzcOgIceeohly5Yxe/Zs+vTpk4irS5cuPPDAA5x22ml07dqVt956i08//ZTLLruMM844A4ATTjihSVPyZDQ0NFBVVUU4HOb777/nb3/7G4Zh8Nvf/rbJuF122YXp06cnvl+/fj3/+c9/lIwSEWmHNE1PREQkwx1//PFNvp87dy4Af/rTn5rsP+2005rc/r///Y+GhgbOOuusJokoYIsr2zWnW7duPPDAA5xwwgmMHz+eU089ldmzZ1NcXMyMGTO2ef+CggLGjRvH22+/jdfrBWJv1F955RUGDRpE3759AXC5XIn7hEIhqqur6dWrF/n5+Xz33XdJx7s1r7/+Ov369WOnnXaiqqoq8RWfNrTp9LaNGYbBwQcfzNy5c2loaEjsf+211ygtLWX33XcHIC8vD4glqZqbmtgS9fX1AOTk5OzQcbbmmGOOSWzn5+fTt29f3G53k4TbTjvtRH5+PsuWLWuVx7RarYlEVDQaZf369YTDYQYNGrTdv+u+ffuyyy678Oqrryb2RSI
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKMAAAK1CAYAAAAUpS2tAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4VGXax/HvmZpMKikQmlQBEaSIKIqydsW26trL+666urtib+Dr2ta1rbqsYttl1bWXta2uYpfFXhEbSu+EFFInU895/5jMQCCBJExyJpPf57pyMZl55px7kofJzD33cz+GZVkWIiIiIiIiIiIincBhdwAiIiIiIiIiItJ9KBklIiIiIiIiIiKdRskoERERERERERHpNEpGiYiIiIiIiIhIp1EySkREREREREREOo2SUSIiIiIiIiIi0mmUjBIRERERERERkU6jZJSIiIiIiIiIiHQaJaNERERERERERKTTKBklIiIibTZ9+nQOOOAAu8OQVlq9ejXDhw/nhRdeSOpxDzjgAKZPn57UY6a65ub+8OHDueeeezo1jnvuuYfhw4d36jlFRESSRckoERERG91///389re/Ze+9997uG9rS0lIuuugiJkyYwPjx4/nd737HqlWrtnn877//nuHDh/OXv/ylxTHLly9n+PDh3HLLLe1+HN1BNBrl+eef54wzzmDixImMGjWKAw44gBkzZvDtt9/aHV6H+eqrr7jnnnuoqamxO5SEAw44gOHDhye+xo4dy69+9Steeuklu0NLOdOnT2/ysxo/fjxHH300Dz30EKFQqM3H+/TTTxk+fDhz5szpgGhFRKS7cNkdgIiISHc2c+ZMiouL2WWXXfjggw9aHFdfX8+ZZ55JbW0t5513Hm63m0ceeYTTTz+dl156iR49ejR7v1133ZXBgwfzn//8h0suuaTZMa+++ioARx999I4/oDQVCASYNm0a8+bNY4899uC8884jLy+PNWvW8Prrr/Piiy/y/vvvU1JSYneoSff1118za9Ysjj32WHJzc5vcNmfOHAzDsCWuXXbZhV//+tcAlJWV8dxzz3HVVVcRCoU48cQTOzWWBQsW4HQ6O/WcbeHxeLjpppsAqK2t5Y033uC2227j22+/3WaiWkREpKMoGSUiIgL4/X58Pl+nn/edd96hX79+VFZWMmnSpBbHPfnkkyxfvpznnnuO3XbbDYB9992Xo446iocffphLL720xfseddRR/PWvf2X+/PmMHTt2q9tfffVVBg8ezK677rrDjydd3X777cybN48ZM2bwv//7v01umzZtGo888ogtcdnN4/HYdu5evXpxzDHHJL4/7rjjOPDAA3nkkUc6PRnl9Xo79Xxt5XK5mvysTj31VE444QRee+01pk+fTq9evWyMTkREuiMt0xMRkW4n3mtl8eLFXHbZZeyxxx6ceuqpAEQiEe69914OOuigxDKsu+66q9nlLHPnzuX0009n3LhxjB8/nuOPP55XXnmlTbH069evVePeeOMNRo8enUhEAQwZMoRJkybx+uuvb/O+Rx11FLCpAmpz3333HcuWLUuMefvttzn33HOZPHkyo0aN4qCDDuLee+8lGo1u8xzxpTuffvppk+tb6lW0ZMkSLrzwQiZOnMjo0aM57rjjeOedd7Z5jnA4zMSJE5kxY8ZWt9XV1TF69Ghuu+22xHWPPfYYRxxxBGPGjGGPPfbguOOOa/PvB2D9+vU888wz7LPPPlslogCcTidnn312oiqqpX5azfX4GT58ODfeeCOvv/46U6dOZbfdduOkk07ip59+AuDpp5/m4IMPZvTo0ZxxxhmsXr26yf1b6tl0xhlncMYZZ2zzcS1cuJDp06dz4IEHMnr0aPbZZx9mzJjBxo0bm8R8++23A3DggQcmlnrF49j8/N9++y3Dhw/nxRdf3Opc8+bNY/jw4bz33nuJ60pLS5kxYwZ77703o0aN4ogjjuBf//rXNmPeloKCAgYPHszKlSubXG+aJo888ghHHHEEo0ePZu+99+baa6+lurq6ybj2zn1o2jMqPudb+trcN998w9lnn83uu+/OmDFjOP300/nyyy+3Ov4XX3zB8ccfz+jRoznooIN4+umn2/rjacLhcDBx4kQA1qxZA8R+l+eddx5ffPEFv/rVrxg9ejQHHniglj6KiEiHUGWUiIh0WxdddBEDBgzgkksuwbIsAK655hpefPFFDj30UH7961+zYMECHnzwQZYsWcK9996buO8LL7zA1Vdfzc4778x5551HTk4OP/74I/PmzUskdpLFNE1++uknjj/++K1uGz16NB988AF1dXVkZ2c3e//+/fszbtw4Xn/9dWbMmNFkOVE8QRWP+cUXX8Tn8/HrX/8an8/HJ598wt13301dXR1XXXVVUh7PokWLOOWUU+jVqxe/+c1v8Pl8vP7665x//vncc889HHzwwc3ez+12c9BBB/HWW29xww03NKnKefvttwmFQkydOhWAZ599lptuuolDDz2UM888k2AwyE8//cQ333zT5t/Pf//7XyKRSIctY/ziiy949913EwnRv/3tb/z2t7/lnHPO4cknn+TUU0+lurqa2bNnc/XVV/Poo48m5bwfffQRq1at4rjjjqO4uJhFixbx7LPPsnjxYp599lkMw+Dggw9m+fLlvPrqq8yYMSOxHLSgoGCr440ePZr+/fvz+uuvc+yxxza57bXXXiMvL4/JkycDUF5ezoknnohhGJx22mkUFBTw3//+l//7v/+jrq6u2aTf9kQiEUpLS8nLy2ty/bXXXsuLL77Icccdl0joPfHEE/zwww889dRTuN1uIHlzv6CgIJHA2zy2W265JXEugI8//pjf/OY3jBo1imnTpmEYBi+88AL/8z//w5NPPplIPP/000+cffbZFBQUcMEFFxCJRLjnnnsoLCxs889oc/F+c/n5+YnrVqxYwUUXXcSvfvUrjj32WJ5//nmmT5/Orrvuys4777xD5xMREdmcklEiItJtjRgxgjvvvDPx/cKFC3nxxRc54YQTEv1V4m+UH3roIT755BP22msvamtruemmm9htt9147LHHmizRiSe1kqmqqopQKERxcfFWt8Wv27BhQ4vJKIglm2688UY+/vjjRELANE1ee+01xo0bR//+/QG48847ycjISNzvlFNO4dprr+Wpp57ikksuScqyrD/96U/07t2b559/PnG8U089lVNOOYU77rijxWQUwNSpU3n++ef58MMP2X///RPXv/baa/Tv35/Ro0cD8P7777Pzzjtz991373C8S5YsAeiwncuWLVvG66+/nqiSy8vL49prr+X+++9nzpw5id+raZo8+OCDrF69utUVddty6qmnctZZZzW5buzYsVx66aV8+eWXTJgwgREjRjBy5EheffVVDjrooO2ed+rUqTz00ENUV1cnkkKhUIi3336bgw8+OJGM+ctf/kI0GuWVV15JJLhOOeUULr30UmbNmsXJJ5/cZB42JxKJUFlZCcSSW7Nnz6asrIzTTjstMeaLL77gueee44477miShNxzzz0555xzmDNnTuL6ZM19n8/XZEkcwA033IDf7+ehhx4CYs8T119/PXvuuSezZ89O9N06+eSTOeKII5g5c2Zi7N13341lWTzxxBP06dMHgEMPPbTNSdX4z6quro7XX3+dt99+m+HDhzN48ODEmGXLlvHEE08wYcIEAA4//HCmTJnCCy+8kLRktIiICGiZnoiIdGMnn3xyk+/nzp0LkGiKHBd/wx6//cMPP6S+vp5zzz13q14xHdHMORgMAs3354mfPz6mJVOnTsXtdjdZqvfZZ59RWlra5E3t5m/G6+rqqKysZMKECTQ0NLB06dIdehwQS6x98sknHH744YnjV1ZWsnHjRiZPnszy5cspLS1t8f577bUXPXr04LXXXktcV11dzUcffZSoigLIzc1l/fr1LFiwYIdjrqurAyArK2uHj9WcSZMmNUnyjBkzBoBDDjmkSYIxXimzvR0UW2vz33UwGKSysjJx7u+//75dx5w6dSrhcJg333wzcd2HH35ITU1N4vdjWRZvvvkmBxxwAJZlJeZ
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJ0AAAK1CAYAAABin58mAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd0VFXXx/Hv9GTSG713EaSK0kSaCoqFV6z42FBQwYKKgA0VsSsiWBErivr4YAWsiKBYEBAE6b0kkEJ6pr9/TDIQSEJ6/X3WylqTO+fee+7kMMzsu88+Bp/P50NERERERERERKQcGau6AyIiIiIiIiIiUvso6CQiIiIiIiIiIuVOQScRERERERERESl3CjqJiIiIiIiIiEi5U9BJRERERERERETKnYJOIiIiIiIiIiJS7hR0EhERERERERGRcqegk4iIiIiIiIiIlDsFnUREREREREREpNwp6CQiIiKVZvLkyQwaNKiquyHFtG/fPtq3b8///ve/cj3uoEGDmDx5crkes7oraOy3b9+el156qVL78dJLL9G+fftKPaeIiNRdCjqJiIjUQK+88grjxo2jT58+RX5xzfuCefxP586dizz+hg0baN++PS+88EKhbXbt2kX79u154oknynQttZ3H4+HTTz/lmmuuoVevXnTq1IlBgwYxZcoU1q9fX9XdqzCrV6/mpZdeIi0traq7EjBo0KB8/w66du3KpZdeymeffVbVXat2Jk+enO+16t69OxdeeCHz5s3D6XSW+Hi///477du3Z8mSJRXQWxERqa7MVd0BERERKbmZM2cSFxfHKaecwooVK07aftq0adjt9sDvJpOpyPannnoqrVq14uuvv+auu+4qsM1XX30FwIUXXliCntctOTk5jB8/nuXLl3P66aczduxYIiIi2L9/P4sXL2bhwoX89NNPNGjQoKq7Wu7WrFnD7NmzueSSSwgPD8/33JIlSzAYDFXSr1NOOYXrr78egMOHD/PJJ59w33334XQ6ueyyyyq1L+vWrTvpv8WqZLVamT59OgDp6el88803PPXUU6xfv77IgLSIiEgeBZ1ERETKICsrK18wp7L88MMPNGnShOTkZHr37n3S9ueeey7R0dElOseIESN48cUXWbt2LV27dj3h+a+++opWrVpx6qmnlui4dcnTTz/N8uXLmTJlCtddd12+58aPH8/bb79dJf2qalartcrOXb9+fS666KLA7yNHjmTw4MG8/fbblR50stlslXq+kjKbzfleq6uuuopRo0axaNEiJk+eTP369auwdyIiUhNoep2IiEgx5U1V27ZtG3fffTenn346V111FQBut5s5c+YwZMiQwPSp559/vsBpKMuWLWP06NF069aN7t2783//9398+eWXJepLkyZNStz/jIwMfD5fsduPGDECOJrRdKx//vmHnTt3Btp8//333HzzzfTr149OnToxZMgQ5syZg8fjKfIceVNufv/993zbC6sltH37dm6//XZ69epF586dGTlyJD/88EOR53C5XPTq1YspU6ac8FxGRgadO3fmqaeeCmx77733OP/88+nSpQunn346I0eOLPHfByA+Pp6PPvqIvn37nhBwAn+22Y033hjIciqs3lVBNXjat2/Po48+yuLFixk+fDinnXYal19+OZs3bwZgwYIFDB06lM6dO3PNNdewb9++fPsXVlPpmmuu4ZprrinyujZt2sTkyZMZPHgwnTt3pm/fvkyZMoWUlJR8fX766acBGDx4cGCKVl4/jj3/+vXrad++PQsXLjzhXMuXL6d9+/YsXbo0sC0hIYEpU6bQp08fOnXqxPnnn89///vfIvtclOjoaFq1asWePXvybfd6vbz99tucf/75dO7cmT59+vDQQw+Rmpqar11pxz7kr+mUN+YL+znW33//zY033kiPHj3o0qULo0eP5q+//jrh+KtWreL//u//6Ny5M0OGDGHBggUlfXnyMRqN9OrVC4D9+/cD/r/l2LFjWbVqFZdeeimdO3dm8ODBmrIoIiKAMp1ERERK7I477qB58+bcddddgSDOAw88wMKFCzn33HO5/vrrWbduHa+99hrbt29nzpw5gX3/97//MXXqVNq2bcvYsWMJCwvj33//Zfny5YEATkUYPHhwICtr8ODBTJ48mdjY2CL3adq0Kd26dWPx4sVMmTIl3zSgvEBUXp8XLlyI3W7n+uuvx26389tvvzFr1iwyMjK47777yuUatm7dypVXXkn9+vW56aabsNvtLF68mNtuu42XXnqJoUOHFrifxWJhyJAhfPfddzzyyCP5smy+//57nE4nw4cPB+Djjz9m+vTpnHvuufznP//B4XCwefNm/v777xL/fX7++WfcbneFTT9ctWoVP/74YyDw+frrrzNu3DjGjBnDBx98wFVXXUVqaipz585l6tSpvPvuu+Vy3l9//ZW9e/cycuRI4uLi2Lp1Kx9//DHbtm3j448/xmAwMHToUHbt2sVXX33FlClTiIqKAigw265z5840bdqUxYsXc8kll+R7btGiRURERNCvXz8AEhMTueyyyzAYDFx99dVER0fz888/c//995ORkVFgcO9k3G43CQkJRERE5Nv+0EMPsXDhQkaOHBkI3M2fP5+NGzfy4YcfYrFYgPIb+9HR0YFA3bF9e+KJJwLnAli5ciU33XQTnTp1Yvz48RgMBv73v/9x7bXX8sEHH3DaaacBsHnzZm688Uaio6OZMGECbrebl156iZiYmBK/Rsfau3cvAJGRkYFtu3fv5o477uDSSy/lkksu4dNPP2Xy5MmceuqptG3btkznExGRmk1BJxERkRLq0KEDzz33XOD3TZs2sXDhQkaNGhWof5L3hXjevHn89ttvnHnmmaSnpzN9+nROO+003nvvvXxTa0qSgVQS4eHhjB49mq5du2K1Wlm1ahUffPAB69ev59NPPyU0NLTI/UeMGMGjjz7KypUrA1/8vV4vixYtolu3bjRt2hSA5557jqCgoMB+V155JQ899BAffvghd911V7lMp3r88cdp2LAhn376aeB4V111FVdeeSXPPvtsoUEngOHDh/Ppp5/yyy+/MHDgwMD2RYsW0bRp00Bh9Z9++om2bdsya9asMvd3+/btABW2UtjOnTtZvHhxIOstIiKChx56iFdeeYUlS5YE/rZer5fXXnuNffv2lSpD7nhXXXUVN9xwQ75tXbt2ZeLEifz111/07NmTDh060LFjR7766iuGDBly0vMOHz6cefPmkZqaGgj+OJ1Ovv/+e4YOHRoIurzwwgt4PB6+/PLLQCDryiuvZOLEicyePZsrrrgi3zgsiNvtJjk5GfAHsebOncvhw4e5+uqrA21WrVrFJ598wrPPPpsv2HjGGWcwZswYlixZEtheXmPfbrfnm8oG8Mgjj5CVlcW8efMA//vEtGnTOOOMM5g7d26gLtYVV1zB+eefz8yZMwNtZ82ahc/nY/78+TRq1AjwT7MtafA077XKyMhg8eLFfP/997Rv355WrVoF2uzcuZP58+fTs2dPAIYNG8aAAQP43//+V25BZxERqZk0vU5ERKSErrjiiny/L1u2DCBQnDhP3hfzvOd/+eUXMjMzufnmm0+o5VJRRZWvvfZaHnzwQUaMGMG5557L/fffz5NPPsmuXbv44IMPTrr/8OHDsVgs+abY/fHHHyQkJOT78nrsl+6MjAySk5Pp2bMn2dnZ7Nixo8zXceTIEX777TeGDRsWOH5ycjIpKSn069ePXbt2kZCQUOj+Z555JlFRUSxatCiwLTU1lV9//TWQ5QT+IF18fDzr1q0rc58zMjIACAkJKfOxCtK7d+98wZwuXboAcM455+QLJuZlvuRlqJTVsX9rh8NBcnJy4NwbNmwo1TGHDx+Oy+Xi22+/DWz75ZdfSEtLC/x9fD4f3377LYMGDcLn8wXGQHJyMv369SM9Pb1Y51+xYgW9e/emd+/ejBgxgs8//5yRI0cyadKkQJslS5YQFhZG3759853n1FNPxW6355sOWlFj/7PPPuODDz7g3nvv5cwzzwTg33//ZdeuXYwYMYKUlJRAv7Kysujduzd
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4k1Ubx/Fvdpvuxd5bARkiiIAoggOcOFAEJ4oDHOAA9RUHojgQBQeKE0GcOAFxIiioCAguZO8WSvfKfv8ICXQApbRNx+9zXb2u9MnJOSdpnjS5c5/7GHw+nw8REREREREREZFKZAz1BEREREREREREpPZRUEpERERERERERCqdglIiIiIiIiIiIlLpFJQSEREREREREZFKp6CUiIiIiIiIiIhUOgWlRERERERERESk0ikoJSIiIiIiIiIilU5BKRERERERERERqXQKSomIiIiIiIiISKVTUEpERERqnXHjxtGvX79QT0NKaceOHbRt25aPP/64XPvt168f48aNK9c+q7qSnvtt27Zl2rRplTqPadOm0bZt20odU0REqh4FpURERKRMNm7cyJNPPskFF1xAly5d6N27NzfeeCNr164tsX1KSgq333473bp1o2vXrtx8881s3779sGP89ddftG3blmefffaQbbZs2ULbtm15/PHHj+n+1HQej4ePPvqI4cOH0717dzp06EC/fv0YP378If9mNcHKlSuZNm0aWVlZoZ5KUL9+/Wjbtm3wp3PnzlxyySV88sknoZ5alTNu3LhCj1XXrl05//zzef3113E6nUfd3y+//ELbtm1ZuHBhBcxWRESOljnUExAREZHq6cMPP+TDDz/kzDPPZOjQoWRnZ/Pee+8xZMgQZs6cySmnnBJsm5uby1VXXUV2djYjR47EYrHw5ptvMmzYMD755BPi4uJKHKN9+/a0aNGCL7/8kjvvvLPENl988QUA559/fvnfyRqioKCAUaNGsWTJEk466SRGjhxJTEwMO3fuZMGCBcybN48ffviBevXqhXqq5W7VqlVMnz6diy66iOjo6ELXLVy4EIPBEJJ5HXfccVx77bUA7N27lw8++IB7770Xp9PJZZddVqlzWbNmDSaTqVLHPBpWq5WJEycCkJ2dzVdffcXkyZNZu3btYQPWIiJS9SkoJSIiUgPk5eVht9srdcxBgwYxatQoIiIigscuvvhiBg4cyLRp0woFpebMmcOWLVv44IMPOOGEEwDo06cP5513Hm+88QZjxow55DjnnXcezz33HKtXr6Zz587Frv/iiy9o0aIF7du3L787V8M8+eSTLFmyhPHjx3PNNdcUum7UqFG8+eabIZlXqFmt1pCNXbduXS644ILg74MHD+aMM87gzTffrPSglM1mq9TxjpbZbC70WA0dOpRLL72U+fPnM27cOOrWrRvC2YmIyLHQ8j0REZFqJlCLZcOGDYwdO5aTTjqJoUOHAuB2u3nhhRfo379/cHnWlClTSlzmsnjxYoYNG0aXLl3o2rUrF198MZ9//nmp59GhQ4dCASmAuLg4unXrxqZNmwod/+qrr+jYsWMwIAXQsmVLevbsyYIFCw47znnnnQccyIg62J9//snmzZuDbb755htuvPFGevfuTYcOHejfvz8vvPACHo/nsGMElvT88ssvhY4fqpbRxo0bue222+jevTsdO3Zk8ODBfPvtt4cdw+Vy0b17d8aPH1/supycHDp27MjkyZODx2bNmsWgQYPo1KkTJ510EoMHDz6qv09AcnIy7733Hr169SoWkAIwmUxcf/31wSypQ9XbKqkGUNu2bXnkkUdYsGABAwcO5IQTTmDIkCGsW7cOgLlz5zJgwAA6duzI8OHD2bFjR6HbH6qm0/Dhwxk+fPhh79e///7LuHHjOOOMM+jYsSO9evVi/PjxpKenF5rzk08+CcAZZ5wRXAIWmMfB469du5a2bdsyb968YmMtWbKEtm3b8v333wePpaSkMH78eE455RQ6dOjAoEGD+PDDDw8758OJj4+nRYsWbNu2rdBxr9fLm2++yaBBg+jYsSOnnHIKDz74IJmZmYXalfW5D4VrSgWe84f6Odgff/zB9ddfz4knnkinTp0YNmwYv//+e7H+V6xYwcUXX0zHjh3p378/c+fOPdqHpxCj0Uj37t0B2LlzJ+D/W44cOZIVK1ZwySWX0LFjR8444wwtiRQRqeKUKSUiIlJN3X777TRt2pQ777wTn88HwAMPPMC8efM466yzuPbaa1mzZg0zZsxg48aNvPDCC8Hbfvzxx9x33320bt2akSNHEhUVxT///MOSJUuCAZ6y2rt3L7GxscHfvV4v69at4+KLLy7WtmPHjixdupScnBwiIyNL7K9x48Z06dKFBQsWMH78+ELLjAKBqsCc582bh91u59prr8Vut7N8+XKef/55cnJyuPfee4/pfgWsX7+eK664grp163LDDTdgt9tZsGABt956K9OmTWPAgAEl3s5isdC/f3++/vprHn744UJZOt988w1Op5OBAwcC8P777zNx4kTOOussrrrqKhwOB+vWreOPP/446r/Pjz/+iNvtrrDljStWrOC7774LBkZfeeUVbrrpJkaMGMGcOXMYOnQomZmZzJw5k/vuu4+33367XMb9+eef2b59O4MHDyYpKYn169fz/vvvs2HDBt5//30MBgMDBgxgy5YtfPHFF4wfPz64TDQ+Pr5Yfx07dqRx48YsWLCAiy66qNB18+fPJyYmht69ewOQmprKZZddhsFg4MorryQ+Pp4ff/yR+++/n5ycnBKDf0fidrtJSUkhJiam0PEHH3yQefPmMXjw4GBgb/bs2fz999+8++67WCwWoPye+/Hx8cFA3sFze/zxx4NjASxbtowbbriBDh06MGrUKAwGAx9//DFXX301c+bMCQag161bx/XXX098fDyjR4/G7XYzbdo0EhISjvoxOligHt3BrzVbt27l9ttv55JLLuGiiy7io48+Yty4cbRv357WrVsf03giIlIxFJQSERGpptq1a8czzzwT/P3ff/9l3rx5XHrppcH6K4EPzK+//jrLly/n5JNPJjs7m4kTJ3LCCScwa9asQkt3AsGtslqxYgWrV6/m5ptvDh7LyMjA6XSSlJRUrH3g2J49ew4ZlAJ/0OmRRx5h2bJlwcCA1+tl/vz5dOnShcaNGwPwzDPPEBYWFrzdFVdcwYMPPsi7777LnXfeWS7LtR577DHq16/PRx99FOxv6NChXHHFFTz99NOHDEoBDBw4kI8++oiffvqJ008/PXh8/vz5NG7cmI4dOwLwww8/0Lp1a55//vljnu/GjRsBKmyns82bN7NgwQIaNWoEQExMDA8++CAvvfQSCxcuDP5dvV4vM2bMYMeOHcG2x2Lo0KFcd911hY517tyZMWPG8Pvvv9OtWzfatWvH8ccfzxdffEH//v2POO7AgQN5/fXXyczMDAaHnE4n33zzDQMGDAgGZZ599lk8Hg+ff/55MNB1xRVXMGbMGKZPn87ll19e6HlYErfbTVpaGuAPcs2cOZO9e/dy5ZVXBtusWLGCDz74gKeffrpQMLJHjx6MGDGChQsXBo+X13PfbrcXWioH8PDDD5OXl8frr78O+F8nHnroIXr06MHMmTODdbkuv/xyBg0axNSpU4Ntn3/+eXw+H7Nnz6ZBgwYAnHXWWUcdXA08Vjk5OSxYsIBvvvmGtm3b0qJFi2CbzZs3M3v2bLp16wbAOeecQ9++ffn444/LLSgtIiLlS8v3REREqqnLL7+80O+LFy8GCBZPDgh8cA9c/9NPP5Gbm8uNN95YrJbMsRR93rdvH2PHjqVRo0aMGDEieNzhcAAl1+8JjB9ocygDBw7EYrEUWsL366+/kpKSUujD7cEfynNyckhLS6Nbt27k5+cXW1JYFhkZGSxfvpxzzjkn2H9aWhrp6en07t2bLVu2kJKScsjbn3zyycTFxTF//vzgsczMTH7++edglhRAdHQ0ycnJrFmz5pjnnJOTA1BsqWV56dmzZ6FgT6dOnQA488wzCwUaA5kzR9pxsbQO/ls7HA7S0tKCY//1119l6nPgwIG
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABJ0AAAK1CAYAAABin58mAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3XeYU9XWx/FveqZXOkOvClIFQRBEUIpYuGADO4JXsaGiYsOG2FERQUHsgOXFgoBiAeGqqICKBQXpnek9/f0jJDAwEwaYmUz5fZ6Hh5OTfc5ZyeyZJCt7r23w+Xw+REREREREREREypAx3AGIiIiIiIiIiEj1o6STiIiIiIiIiIiUOSWdRERERERERESkzCnpJCIiIiIiIiIiZU5JJxERERERERERKXNKOomIiIiIiIiISJlT0klERERERERERMqckk4iIiIiIiIiIlLmlHQSEREREREREZEyp6STiIiIVIjWrVvz4osvhjsMKaUXX3yR1q1bl+k5V61aRevWrVm1alWZnreyO7zv/9///R+tW7dmx44dFRpHv379uPvuuyv0miIiUrMp6SQiIhJm77zzDv/3f/9X5uft168frVu3PuLfAw88EPK4Rx99lNatW7N169YS2zz33HO0bt2a9evXl3XY1UpqaipPPPEEAwcOpEOHDnTs2JFhw4Yxffp0srOzwx1euSmvPn28AsmuwL+2bdvSo0cPbr75Zv79999wh1fpHPpctWnThl69enHNNdccd7Lw7rvvplOnTmUcpYiIVAXmcAcgIiJS082dO5eEhASGDRtW5udu27YtV199dZF9TZs2DXnM0KFDeeutt/j0008ZN25csW0WLlxIq1ataNOmTZnFWt389ttvjBkzhvz8fM477zxOPvlkAH7//XdeffVVfv75Z1577bUwR1k+SurTp556Kr/99hsWiyUscV1++eW0b98et9vN33//zbx581i1ahULFy6kVq1aFRbH+eefz5AhQ7BarRV2zWN1+umnc/755+Pz+dixYwdz587lyiuvZObMmfTp0yfc4YmISBWhpJOIiEgVkp+fT2RkZKnb16lTh/PPP/+YrtGhQwcaN27MZ599VmzSae3atezYsYPbb7/9mM5bk2RnZzNu3DhMJhMLFiygefPmRe6/7bbbeO+998IUXfgYjUZsNlvYrt+1a1cGDhwYvN20aVMmTZrERx99xHXXXVdhcZhMJkwmU4Vd73g0adKkyN+OAQMGcN555/Hmm28q6SQiIqWm6XUiIiLHIFDnZuvWrdx999107dqVLl26cM8991BQUFCk7YcffsgVV1xBjx49aNeuHYMHD+bdd98t0qZfv35s2LCBH3/8MTid5fLLLwcO1n358ccfmTRpEj169DiuD3tOp5P8/PxjOmbo0KFs2rSJP/7444j7Fi5ciMFg4Nxzz8XpdPL8888zbNgwunTpQseOHbnsssv44YcfjnqNu+++m379+h2xv6RaQh9//DHDhg3jlFNOoVu3btx2223s3r075DWWLFkSfA4PN2/ePFq3bs0///wDwP79+7nnnns444wzaNeuHb169eK///3vcdXdmTdvHnv37uXuu+8+IuEEkJyczA033BC8XVK9q8Nr8AT6xM8//8yjjz7KaaedRteuXXnggQdwOp1kZ2czYcIETj31VE499VSefPJJfD5f8PiSairt2LGD1q1bH3VK3In26cOv//DDD9OpU6cjfncAxo8fz+mnn47H4wnuW758OZdddhkdO3akU6dOjBkzhg0bNoSMOZSuXbsCsH379iL79+7dyz333EPPnj1p164dQ4YM4YMPPijS5kT6/uE1nQJ9vrh/h/78vV4vr7/+OkOGDKF9+/b07NmTBx54gKysrCLn9/l8TJ8+nTPOOIMOHTpw+eWXn9DzBP4+mpCQEIw58LNctGgRL7/8MmeccQbt27fnyiuvDDk1V0REahaNdBIRETkOt956Kw0bNmT8+PH8+eefvP/++yQmJnLnnXcG28ydO5eWLVvSr18/zGYz33zzDQ899BA+n4+RI0cCMHHiRB555BEiIyO5/vrrAX9C4lAPPfQQiYmJ3HjjjcecPPrhhx/o2LEjHo+HBg0acOWVV3LllVce9bihQ4cybdo0Fi5cGJwWBuDxeFi8eDFdu3alfv36pKen8/7773PuuecyYsQI8vLy+OCDDxg9ejTvv/8+bdu2PaZ4S/Lyyy/z/PPPM2jQIIYPH056ejpvv/02I0eO5KOPPiI2NrbY4/r27UtkZCSLFy+mW7duRe5btGgRLVu2pFWrVgDcdNNNbNy4kVGjRtGgQQPS09P53//+x+7du2nYsOExxfv1119jt9s555xzju8BH8Wjjz5KcnIyN910E7/++ivz588nJiaGtWvXUq9ePW677Ta+/fZbZs+eTatWrbjgggvK5Lpl1acDBg8ezDvvvMOyZcsYNGhQcH9BQQHffPMNF154YXBE0EcffcTdd99Nr169uOOOOygoKGDu3LlcdtllLFiw4Jh/RgA7d+4EKNJ/UlNTueiiizAYDIwcOZLExES+/fZb7r33XnJzc7nqqqsAyM3NLbO+P2DAABo1alRk3x9//MEbb7xBYmJicN8DDzzAggULGDZsGJdffjk7duzgnXfe4c8//2Tu3LnBaYvPP/88L7/8Mn369KFPnz788ccfXHPNNbhcrmN+jgKysrLIzs6mcePGRfa/+uqrGAwGrrnmGnJzc5k1axZ33HEH77///nFfS0REqg8lnURERI5D27ZtmTx5cvB2ZmYmH3zwQZGk09tvv43dbg/eHjVqFNdeey1z5swJfkDv378/U6dOJSEhocRpcHFxcbz++uvHPB2nVatWdOnShaZNm5KZmcmCBQuYPHky+/btKxJncZo0aUL79u1ZtGgRd955J0ajf3D0d999R1paGrfcckswtq+//rpIbZqLLrqIQYMG8dZbbxV5jo7Xzp07efHFF7n11luDSQyAs88+mwsvvJB33323yP5D2e12+vXrx+eff859990XfA7379/PTz/9FJw+mJ2dzdq1a5kwYQLXXntt8PixY8ceV8ybNm2iSZMm5VazJykpKfhhf+TIkWzbto3Zs2dz8cUX89BDDwFw8cUX069fPz788MMySzqVVZ8O6NKlC3Xq1GHx4sVFkk7Lli0jPz+fwYMHA5CXl8djjz3GiBEjeOSRR4LtLrzwQgYOHMjMmTOL7C9JXl4e6enpwZpOkydPxmAwcPbZZwfbPPfcc3g8Hj799FMSEhIAuPTSSxk/fjzTpk3jkksuwW63l2nfb9OmTZH6aOnp6UydOpVWrVoF++jPP//M+++/z9NPP83QoUODbbt3787o0aNZsmQJQ4cOJT09nVmzZtG3b19mzJiBwWAIPq4ZM2aUOiaHw0F6ejrgHwn37LPP4vF4ikxPDLT76KOPgs9DbGwsjz32GP/8808woSsiIjWXpteJiIgch0suuaTI7a5du5KZmUlubm5w36EfznNyckhPT6dbt25s376dnJycUl/roosuOq76LzNmzOC6666jf//+DB8+nLfffptevXrx+uuvs2fPnqMef95557Fnzx5++umn4L6FCxdisViCHzxNJlPww6bX6yUzMxO32027du34888/jznm4ixduhSv18ugQYNIT08P/ktOTqZx48ZHXVFr0KBBpKWlFZli9/nnn+P1eoNJDbvdjsVi4ccffzxiqtLxyM3NJSoq6oTPU5Lhw4cHkwkAp5xyCj6fj+HDhwf3mUwm2rVrd8TUsRNRVn06wGAwMHDgQJYvX05eXl5w/+LFi6lTpw5dunQB/MnO7OxshgwZUqQPGI1GOnToUOpV1SZOnEiPHj3o3bs3o0ePJicnhyeffJJTTjkF8E9L++KLL+jXrx8+n6/ItXr16kVOTk5wyml59X2Px8Ptt99OXl4eL730UrCG25IlS4iJieH0008vEtfJJ59MZGRk8Dn47rvvcLlcjBo1qkgfKc0Ix0N98MEH9OjRgx49ejBixAjWrFnD1VdffcR5hg0bViTxVtKURRERqZk00klEROQ41K9fv8jtwPScrKw
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAK1CAYAAAAZu13qAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8VfX9x/HXuTs3yc0gYQSQDQ4QcKAow1VXta1aV9UOtWoV0TrB9ueoSkWLpQrWgdVq3Vpt3dZRi3uBA0RlyF5JyLz73vP74+ZekhAgCXcl9/18PPLg5t7vPed7Lyf3nvu5n8/na5imaSIiIiIiIiIiIpJGlkxPQEREREREREREco+CUiIiIiIiIiIiknYKSomIiIiIiIiISNopKCUiIiIiIiIiImmnoJSIiIiIiIiIiKSdglIiIiIiIiIiIpJ2CkqJiIiIiIiIiEjaKSglIiIiIiIiIiJpp6CUiIiIiIiIiIiknYJSIiIikvP++c9/MmLECNasWZPpqUg7HXbYYUybNi2p25w2bRqHHXZYUreZ7do69s866yzOOuustM7jww8/ZMSIEXz44Ydp3a+IiGSWglIiIiI56JFHHuGf//xn0rf70ksvccUVV3DkkUcyYsSIdn+w/etf/8qIESM47rjjdjguFApxwAEHcPrpp293jGmaTJ48mRNOOKFDc89FH374IVOmTOHggw9m5MiRjB8/ngsuuIDXXnst01NLmY0bN3LnnXfy9ddfZ3oqCdOmTWPEiBGJn5EjR3LUUUfxl7/8hUAgkOnpZZV4EC3+M2rUKI466ij+8Ic/UFlZ2altjhgxgj/84Q9JnqmIiLSHLdMTEBERkfR77LHHKCkp4cQTT0z6dr/66itGjRpFTU1Nu+6zYcMG7rnnHtxu907H2u12jj76aJ544gnWrl1L3759txnz8ccfs2HDBn75y192cPa55Y477mDu3LkMHDiQU089lYqKCmpqanj77be5+OKL+dOf/sTxxx+f6Wkm3aZNm5gzZw59+/Zljz32aHHbjTfeiGmaGZmXw+HgpptuAqChoYE33niDu+66i1WrVjFr1qy0zuX+++9P6/46Y+rUqfTr149gMMinn37KY489xttvv80LL7xAXl5epqcnIiLtpKCUiIiI7JDX621XwAjg1ltvpVevXlgslp1mPcXNnDmT0aNHE41G2bJly07HH3/88Tz++OO8+OKLnHfeedvc/sILL2CxWDj22GPbtf9c9MorrzB37lyOOuooZs2ahd1uT9x27rnnMn/+fMLhcAZnmBnNn4d0s9ls/PjHP078/rOf/YzTTjuNF198kenTp1NWVpa2uTgcjrTtq7MmTZrEqFGjADj55JMpLi7mgQce4I033mj3a4+IiGSeyvdERESy3J133smIESNYuXIl06ZNY7/99mPfffdl+vTp+Hy+FmOfeeYZfv7znzN+/HhGjhzJsccey6OPPtpizGGHHcZ3333HRx99lCiBiZfZxUtjPvroI66//nrGjx/P5MmT2z3XPn36YLG0//Ti448/5tVXX+Waa65p93323Xdf+vbty/PPP7/NbaFQiFdffZUDDjiAXr16sWTJEqZNm8bhhx/OqFGjOPjgg5k+fXq7gl8jRozgzjvv3Ob6tnoZ1dXVcfPNNzN58mRGjhzJD37wA+69916i0egO93H++edz+OGHt3nbqaee2iKT7d133+X0009nv/32Y+zYsRx11FHcfvvtO30cbfnLX/5CcXExM2bMaDMQM3HiRA499FBg+/222uoBdNZZZ3HcccexZMkSzjzzTEaPHs0PfvADXnnlFQA++ugjTj75ZPbee2+OOuoo3nvvvRbb3F5Pp/jfwI7U1NQwc+ZMjj/+eMaOHcs+++zDueeey5IlS1rM+ac//SkA06dPTxz/8VLW5vsPhUKMGzeO6dOnb7OvhoYGRo0axcyZMxPXBYNB7rjjDn7wgx8wcuRIJk+ezK233kowGNzhvLfHMAz22WcfTNNk9erVLW57++23+dnPfsaYMWMYO3Ys5513Ht99912LMbty7LfuKXXYYYe1KJlr/tP8/3/jxo1Mnz6dgw46iJEjR/LDH/6Qp59+epvtb9iwgQsvvJAxY8Ywfvx4ZsyY0ennKe7AAw8ESByn06ZNY+zYsWzcuJELL7yQsWPHcuCBBzJz5kwikcgu7UtERJJHmVIiIiJdxKWXXkq/fv247LLLWLx4MU899RSlpaVceeWViTGPPfYYw4YN47DDDsNms/HWW29xww03YJomZ5xxBgDXXHMNN954I263mwsuuABgmyyMG264gdLSUi666CK8Xm9KHk8kEuHGG2/kpz/96U4DDs0ZhsHxxx/P3XffzXfffcewYcMSt82fP5+amppE2dl7773H6tWrOfHEEykvL+e7777jySefZOnSpTz55JMYhrHLj8Pn83HmmWeyceNGTjvtNPr06cOCBQu4/fbb2bx5M7/73e+2e99jjjmGq6++mi+++IK99947cf3atWtZuHAhV111FQDfffcd559/PiNGjGDq1Kk4HA5WrlzJZ5991uH5fv/99yxfvpyTTjqJgoKCjj/gnaitreWCCy7g2GOP5eijj+axxx7jsssuIxqNMmPGDE477TSOO+447r//fqZOncp///vfpMxj9erVvP766xx99NH069ePyspKnnjiCc4880xefPFFevXqxZAhQ5g6dSp33HEHp556Kvvuuy8A++yzzzbbs9vtHHHEEfznP//hhhtuaJE99PrrrxMMBhPZeNFolN/85jd8+umnnHLKKQwZMoRvv/2Wv//973z//ffcddddnXpMa9euBcDj8SSue+6555g2bRoTJkzgiiuuwOfz8dhjj/Gzn/2MZ599ln79+gHJPfavueYaGhsbW1z397//na+//pri4mIAKisrOeWUUzAMgzPOOIPS0lL+97//8bvf/Y6GhoZEOa3f7+cXv/gF69ev56yzzqJnz57861//4oMPPujUcxS3atUqgMR8IPYac84557D33ntz1VVX8f777/O3v/2N/v3787Of/WyX9iciIsmhoJSIiEgXscceezBjxozE7zU1NTz99NMtglL/+Mc/cLlcid/PPPNMzjnnHB544IFEUOqII45g9uzZlJSUtCgXaq6oqIgHH3wQq9WaokcDjz/+OOvWrePBBx/s8H3jQannn3+eyy67LHH9Cy+8gNPp5KijjgJiJVBnn312i/uOGTOGyy67jE8//ZT99ttvlx4DwAMPPMDq1at59tlnGThwIACnnXYaPXv25P777+fss8+mT58+bd73iCOOwOFw8PLLL7cISr388ssYhsExxxwDxLKkQqEQ9913H6Wlpbs032XLlgEwfPjwXdrO9mzatIlZs2YlSqgOOuggjjnmGC6//HIef/xxRo8eDcCQIUM455xzeO2115LS22zEiBG8+uqrLTL1fvzjH3PMMcfw9NNPc9FFF1FWVsakSZO44447GDNmzHaP/7hjjz2WZ555hnfffTeROQaxhv79+/dPlI89//zzvPfeezz88MMtjqlhw4Zx3XXX8dlnn7UZ+GqturoaiGVivf7667z22msMHz6cwYMHA9DY2MjNN9/MySefzI033pi43wknnMDRRx/NPffck7g+mcf+EUcc0eL3l19+mUWLFjF16tREQPnPf/4zkUiE559/npKSEgBOP/10LrvsMubMmcNpp52Gy+XiiSee4Pvvv2f27NmJ4/uUU07Z6f9Faw0NDVRXVxMMBvnss8+YO3cuLperxf9TIBDgmGOO4aKLLkrM54QTTuDpp59WUEpEJEuofE9ERKSLOO2001r8vt9++1FTU0NDQ0PiuuYBqfr6eqqrqxk3bhyrV6+mvr6+3fs65ZRTUhqQ2rJlC3fccQcXXnhhp4IsQ4cOZc899+TFF19MXOf1ennzzTc55JBDEpk3zZ+PQCBAdXV1IiiyaNGiXXwUMa+88gr77rsvHo+H6urqxM9BBx1EJBLh448/3u59CwoKmDRpEi+//HKLBtsvvfQSY8aMoaKiAtiaKfPGG2/stCRwZ+LHS35+/i5tZ3vcbjc//OE
|
|
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"data": {
|
|
|
|
|
|
"text/plain": [
|
|
|
|
|
|
"<Figure size 1200x700 with 1 Axes>"
|
|
|
|
|
|
],
|
|
|
|
|
|
"image/png": "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iIjg3nvvxWKx+DTvlJQUAMLDw306ztmGDx/Ok08+yebNm+nfv7/3+n///Zc9e/Zw7733Au5Azvbt2xk2bBixsbEcO3aMlStXcsstt/Dll18SEBDg81xcLhd33303v//+O9dffz1NmzZlz549vP322xw8eJDXXnut2PsOHTqUFStW8P333zNkyBDv9bm5uWzYsIGrr74arVbL6dOnueOOOwgPD2fs2LGEhIRw9OhRvvnmmzLPNzc3l19++YVu3brRoEGDcj3mkjidTu688066devGww8/zJo1a5gxYwYBAQG88sorDB8+nEsvvZRVq1bx6KOP0qlTp3L1ATpXdnY2H374IZdffjnXXXcdOTk5fPTRR4wZM4YPP/yQ1q1bExERwbRp05g2bRqDBg1i0KBBAMU2Nx8yZAjz58/n1KlTBYKov//+OydPnizQK+2pp57i008/ZcSIEYwePZqjR4+yYsUKdu/ezcqVK8uVfeQJsJzdU+rnn3/mzjvvpF27dowfPx5FUfjkk0+49dZbee+997wZVRW59u+6665C2Yyff/45mzdvJjIyEnCvq1GjRpGcnMwNN9xA/fr12b59O7Nnz+bUqVM8/vjjAKiqyj333MPvv//ODTfcQNOmTfnmm2949NFHy/z8nM0TuAsLCytwfWleN4UQQoiykqCUEEKIOqd169bMnDnT+3t6ejofffRRgQ9X7777LiaTyfv7qFGjuOOOO1i2bJk3KDVw4EDmzJlDeHg4V155ZZHnCg0N5a233vK50XV6ejoffvgh3bp1o169ej4d62yXXXYZTz/9NF988UWBoNQXX3wB4C3du/jii70lPh79+/dn5MiRfPXVV1x11VU+z2XNmjX89NNPLF++3JvZAtC8eXOmTp3Ktm3b6NKlS5H37dq1KzExMaxbt65AUOr777/HYrF4gx7bt28nIyODJUuW0L59e++4Bx54oMzzPXToEHa7nRYtWpT5vqVhtVq54oorvCVUw4cPp2/fvkyZMoXZs2d7H1OvXr0YMmQIn332GRMmTPD5vKGhoXz33XcYDAbvdddffz1Dhgxh+fLlzJw5E7PZzGWXXca0adNo2bJlsevfY+jQocydO5evvvqKUaNGea9fu3YtZrOZiy++GICtW7fy4Ycf8tJLLxUoG+3Rowdjxoxh/fr1pSon9WRVeQKH7733HhEREd4yVVVVmTZtGj169GDx4sXeRv833HADw4YNY86cOSxduhSo2LXfu3fvAr9v27aNX3/9lWuuucabSbls2TKOHDnCp59+SqNGjbzzqlevHkuWLOH222+nfv36fPvtt2zZsoVJkyYxZswYAG688cYCzctLIycnh9TUVBwOB3///TfPPvssiqJw6aWXFhhXmtdNIYQQoqykfE8IIUSdc8MNNxT4vVu3bqSnp5Odne297uyAVFZWFqmpqXTv3p0jR46UqTzm+uuv9zkg5XK5ePjhh8nMzOTJJ5/06VjnCg0NpV+/fnz33XfeTC5VVfnyyy9p164djRs3Bgo+H3a7nbS0NBITEwkJCWH37t0VMpf169fTtGlTmjRpQmpqqvfHU050btnb2RRFYfDgwWzcuJGcnBzv9evWrSMmJoauXbsCEBwcDLiDVUWVLJaFZ70EBgb6dJySXHfddd7LISEhNG7cmICAgAKBtyZNmhA
|
2025-07-10 15:07:31 +08:00
|
|
|
|
},
|
|
|
|
|
|
"metadata": {},
|
|
|
|
|
|
"output_type": "display_data"
|
|
|
|
|
|
},
|
|
|
|
|
|
{
|
|
|
|
|
|
"name": "stdout",
|
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
|
"text": [
|
|
|
|
|
|
"\n",
|
|
|
|
|
|
"所有指标的分析图表已生成。\n"
|
|
|
|
|
|
]
|
|
|
|
|
|
}
|
|
|
|
|
|
],
|
2025-07-15 22:45:51 +08:00
|
|
|
|
"execution_count": 40
|
2025-07-10 15:07:31 +08:00
|
|
|
|
}
|
|
|
|
|
|
],
|
|
|
|
|
|
"metadata": {
|
|
|
|
|
|
"kernelspec": {
|
|
|
|
|
|
"display_name": "quant",
|
|
|
|
|
|
"language": "python",
|
|
|
|
|
|
"name": "python3"
|
|
|
|
|
|
},
|
|
|
|
|
|
"language_info": {
|
|
|
|
|
|
"codemirror_mode": {
|
|
|
|
|
|
"name": "ipython",
|
|
|
|
|
|
"version": 3
|
|
|
|
|
|
},
|
|
|
|
|
|
"file_extension": ".py",
|
|
|
|
|
|
"mimetype": "text/x-python",
|
|
|
|
|
|
"name": "python",
|
|
|
|
|
|
"nbconvert_exporter": "python",
|
|
|
|
|
|
"pygments_lexer": "ipython3",
|
|
|
|
|
|
"version": "3.12.11"
|
|
|
|
|
|
}
|
|
|
|
|
|
},
|
|
|
|
|
|
"nbformat": 4,
|
|
|
|
|
|
"nbformat_minor": 5
|
|
|
|
|
|
}
|