【Python】Matplotlib局部放大图画法

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes
from matplotlib.patches import ConnectionPatchx = np.arange(1,len(LSTM_true)+1)# 画出测试集的实际结果和预测结果
fig, ax = plt.subplots(figsize=(30, 12))
ax.plot(x, LSTM_true,color='black', label='true', alpha=0.7)
ax.plot(x, LSTM_predict,color='#848484', label='LSTM', alpha=0.7)
ax.plot(x, MLP_predict, color='#FF774A',label='MLP', alpha=0.7)
ax.plot(x, RNN_predict,  color='#575B20',label='RNN', alpha=0.7)
ax.plot(x, TCN_predict,label='TCN', alpha=0.7)
ax.plot(x, XGBoost_predict,label='XGBoost', alpha=0.7)
ax.plot(x, CNN_predict,label='CNN', alpha=0.7)
ax.plot(x, Transformer_predict,label='Transformer', alpha=0.7)plt.legend(loc='best')# 嵌入局部放大图的坐标系
#ax为父坐标系,后面四个参数同样是(x0, y0, width, height),
axins = ax.inset_axes((0.2, -0.5, 0.4, 0.3))#在子坐标系中绘制原始数据
axins.plot(x, LSTM_true,color='black', label='true', alpha=0.7)
axins.plot(x, LSTM_predict,color='#848484', label='LSTM', alpha=0.7)
axins.plot(x, MLP_predict, color='#FF774A',label='MLP', alpha=0.7)
axins.plot(x, RNN_predict,  color='#575B20',label='RNN', alpha=0.7)
axins.plot(x, TCN_predict,label='TCN', alpha=0.7)
axins.plot(x, XGBoost_predict,label='XGBoost', alpha=0.7)
axins.plot(x, CNN_predict,label='CNN', alpha=0.7)
axins.plot(x, Transformer_predict,label='Transformer', alpha=0.7)# 设置放大区间,调整子坐标系的显示范围
# 设置放大区间
zone_left = 100
zone_right = 130# 坐标轴的扩展比例(根据实际数据调整)
x_ratio = 0  # x轴显示范围的扩展比例
y_ratio = 0.05  # y轴显示范围的扩展比例# X轴的显示范围
xlim0 = x[zone_left]-(x[zone_right]-x[zone_left])*x_ratio
xlim1 = x[zone_right]+(x[zone_right]-x[zone_left])*x_ratio# Y轴的显示范围
y = np.hstack((LSTM_true[zone_left:zone_right], LSTM_predict[zone_left:zone_right],MLP_predict[zone_left:zone_right],RNN_predict[zone_left:zone_right]))
ylim0 = np.min(y)-(np.max(y)-np.min(y))*y_ratio
ylim1 = np.max(y)+(np.max(y)-np.min(y))*y_ratio# 调整子坐标系的显示范围
axins.set_xlim(xlim0, xlim1)
axins.set_ylim(ylim0, ylim1)# 建立父坐标系与子坐标系的连接线
# 原图中画方框
tx0 = xlim0
tx1 = xlim1
ty0 = ylim0
ty1 = ylim1
sx = [tx0,tx1,tx1,tx0,tx0]
sy = [ty0,ty0,ty1,ty1,ty0]
ax.plot(sx,sy,"black")# 画两条线
xy = (xlim0,ylim0)
xy2 = (xlim0,ylim1)
con = ConnectionPatch(xyA=xy2,xyB=xy,coordsA="data",coordsB="data",axesA=axins,axesB=ax)
axins.add_artist(con)xy = (xlim1,ylim0)
xy2 = (xlim1,ylim1)
con = ConnectionPatch(xyA=xy2,xyB=xy,coordsA="data",coordsB="data",axesA=axins,axesB=ax)
axins.add_artist(con)plt.savefig(r'C:\Users\ZHUANG\Desktop\pjm_rto_load.png')


详细内容看https://juejin.cn/post/6844904183548608520

【Python】Matplotlib局部放大图画法相关推荐

  1. Python 绘制局部放大图

    请务必先看此文章: [Python]Matplotlib局部放大图画法(https://juejin.cn/post/6844904183548608520) 这篇文章已经非常详细,但是没有数据,所以 ...

  2. Python中局部放大图案例

    例子一: 先上完整代码和效果图: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.axes_grid1.ins ...

  3. Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部)

    Python matplotlib可视化:用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的外侧顶部) 目录

  4. Python matplotlib可视化:在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)、水平条形图(horizontal bar)

    Python matplotlib可视化:在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等).水平条形图(horizontal bar) 目录

  5. Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式)、使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等)

    Python matplotlib可视化:自定义轴标签格式化函数(在轴刻度上添加自定义的数值以及符号形式).使用自定义函数在Matplotlib中为坐标轴刻度添加自定义符号(例如,货币符号¥$等) 目 ...

  6. Python matplotlib可视化:用Matplotlib的bar_label函数自定义条形图的数值标签、用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的中部)

    Python matplotlib可视化:用Matplotlib的bar_label函数自定义条形图的数值标签.用Matplotlib的bar_label函数为条形图添加数值标记(在每一个条形的中部) ...

  7. python matplotlib 简单用法

    python matplotlib 简单用法 具体内容请参考官网 代码 import matplotlib.pyplot as plt import numpy as np # 支持中文 plt.rc ...

  8. 老咸鱼今天告诉你用Python matplotlib 各种图绘制流线图,难怪老板放纵他

    复习回顾 在Python关于绘图,Mlab提供开源的matplotlib模块,不仅可以绘制折线图.柱状图.散点图等常规图外,还支持绘制量场图.频谱图.提琴图.箱型图等特殊图,例举往期文章可前往查看详情 ...

  9. Python matplotlib 绘制量场图

    复习回顾 matplotlib 是基于Python语言的开源项目,pyplot提供一系列绘制2D图形的方法.随着版本的迭代,matplotlib 模块也支持绘制3D图形mplot3d工具包,制作动态图 ...

最新文章

  1. 剑指offer:把数组排成最小的数
  2. Microsoft Azure Site Recovery (1) 安装VMM服务器代理
  3. Web Worker 使用教程
  4. 引用参考文献_引用参考文献时应注意些什么
  5. NopCommerce用.net core重写ef
  6. 扫地机器人划伤地板_扫地机器人哪个牌子好?会选的才能买到好产品
  7. git(11)---Git的基础知识
  8. 通过命令行安装或卸载Tomcat服务
  9. html5 css练习 定位布局
  10. java 模式匹配_Java 14 模式匹配,非常赞的一个新特性!
  11. Skyline软件系列平台
  12. 内连接和外联结连接的区别
  13. C盘空间不足的处理方式
  14. 蓝桥杯第四届初赛“模拟智能灌溉系统”设计任务书
  15. PostgreSQL 技术内幕(二) Greenplum-AO表
  16. 量子计算机、康威扭结、奥数AI,这是2020年计算机、数学的重大突破
  17. 我设想的BI项目的实施过程
  18. 【信号与系统】—知识点:无失真传输系统、理想低通滤波器
  19. 如何做好aso关键词优化提升关键词排名
  20. Java学习——泛型

热门文章

  1. Android(让你的安卓模拟器链接网络)
  2. 【证明】矩阵特征值之积等于矩阵行列式的值
  3. IT实践达人赛携手IBM续写“技术精神”
  4. python strftime 中文_strftime(python)问题
  5. 拉伊达法则matlab代码,伊布专访(下):超人也有一颗温柔的心
  6. Parallel-data-free voice conversion using cycle-consistent adversarial networks
  7. 支付宝芝麻信用页面自定义View的简单制作(续)
  8. ThinkPHP的缓存问题?
  9. 用广义线性模型进行数据分析(上)
  10. jQuery iCheck