iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用matplotlib库实现图形局部数据放大显示
  • 816
分享到

如何使用matplotlib库实现图形局部数据放大显示

2023-06-29 05:06:08 816人浏览 薄情痞子
摘要

本篇内容介绍了“如何使用matplotlib库实现图形局部数据放大显示”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、绘制总体图形impo

本篇内容介绍了“如何使用matplotlib库实现图形局部数据放大显示”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、绘制总体图形

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1.inset_locator import inset_axesfrom matplotlib.patches import ConnectionPatchimport  pandas as pdMAX_EPISODES = 300x_axis_data = []for l in range(MAX_EPISODES):    x_axis_data.append(l)fig, ax = plt.subplots(1, 1)data1 = pd.read_csv('./result/test_reward.csv')['test_reward'].values.tolist()[:MAX_EPISODES]data2 = pd.read_csv('./result/test_reward_att.csv')['test_reward_att'].values.tolist()[:MAX_EPISODES]ax.plot(data1,label="no att")ax.plot(data2,label = "att")ax.legend()

如何使用matplotlib库实现图形局部数据放大显示

二、插入局部子坐标系

#插入子坐标系axins = inset_axes(ax, width="40%", height="20%", loc=3,                   bbox_to_anchor=(0.3, 0.1, 2, 2),                   bbox_transfORM=ax.transAxes)#在子坐标系中放入数据axins.plot(data1)axins.plot(data2)

如何使用matplotlib库实现图形局部数据放大显示

三、限制局部子坐标系数据范围

#设置放大区间zone_left = 150zone_right = 170# 坐标轴的扩展比例(根据实际数据调整)x_ratio = 0  # x轴显示范围的扩展比例y_ratio = 0.05  # y轴显示范围的扩展比例# X轴的显示范围xlim0 = x_axis_data[zone_left]-(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratioxlim1 = x_axis_data[zone_right]+(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratio# Y轴的显示范围y = np.hstack((data1[zone_left:zone_right], data2[zone_left:zone_right]))ylim0 = np.min(y)-(np.max(y)-np.min(y))*y_ratioylim1 = np.max(y)+(np.max(y)-np.min(y))*y_ratio# 调整子坐标系的显示范围axins.set_xlim(xlim0, xlim1)axins.set_ylim(ylim0, ylim1)

(-198439.93763, -134649.56637000002)

如何使用matplotlib库实现图形局部数据放大显示

四、加上方框和连接线

# 原图中画方框tx0 = xlim0tx1 = xlim1ty0 = ylim0ty1 = ylim1sx = [tx0,tx1,tx1,tx0,tx0]sy = [ty0,ty0,ty1,ty1,ty0]ax.plot(sx,sy,"blue")# 画两条线#第一条线xy = (xlim0,ylim0)xy2 = (xlim0,ylim1)"""xy为主图上坐标,xy2为子坐标系上坐标,axins为子坐标系,ax为主坐标系。"""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)

如何使用matplotlib库实现图形局部数据放大显示

五、总体实现代码

import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.axes_grid1.inset_locator import inset_axesfrom matplotlib.patches import ConnectionPatchimport  pandas as pdMAX_EPISODES = 300x_axis_data = []for l in range(MAX_EPISODES):    x_axis_data.append(l)fig, ax = plt.subplots(1, 1)data1 = pd.read_csv('./result/test_reward.csv')['test_reward'].values.tolist()[:MAX_EPISODES]data2 = pd.read_csv('./result/test_reward_att.csv')['test_reward_att'].values.tolist()[:MAX_EPISODES]ax.plot(data1,label="no att")ax.plot(data2,label = "att")ax.legend()#插入子坐标系axins = inset_axes(ax, width="20%", height="20%", loc=3,                   bbox_to_anchor=(0.3, 0.1, 2, 2),                   bbox_transform=ax.transAxes)#在子坐标系中放入数据axins.plot(data1)axins.plot(data2)#设置放大区间zone_left = 150zone_right = 170# 坐标轴的扩展比例(根据实际数据调整)x_ratio = 0  # x轴显示范围的扩展比例y_ratio = 0.05  # y轴显示范围的扩展比例# X轴的显示范围xlim0 = x_axis_data[zone_left]-(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratioxlim1 = x_axis_data[zone_right]+(x_axis_data[zone_right]-x_axis_data[zone_left])*x_ratio# Y轴的显示范围y = np.hstack((data1[zone_left:zone_right], data2[zone_left:zone_right]))ylim0 = np.min(y)-(np.max(y)-np.min(y))*y_ratioylim1 = np.max(y)+(np.max(y)-np.min(y))*y_ratio# 调整子坐标系的显示范围axins.set_xlim(xlim0, xlim1)axins.set_ylim(ylim0, ylim1)# 原图中画方框tx0 = xlim0tx1 = xlim1ty0 = ylim0ty1 = ylim1sx = [tx0,tx1,tx1,tx0,tx0]sy = [ty0,ty0,ty1,ty1,ty0]ax.plot(sx,sy,"blue")# 画两条线# 第一条线xy = (xlim0,ylim0)xy2 = (xlim0,ylim1)"""xy为主图上坐标,xy2为子坐标系上坐标,axins为子坐标系,ax为主坐标系。"""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)

如何使用matplotlib库实现图形局部数据放大显示

“如何使用matplotlib库实现图形局部数据放大显示”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 如何使用matplotlib库实现图形局部数据放大显示

本文链接: https://www.lsjlt.com/news/322858.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用matplotlib库实现图形局部数据放大显示
    本篇内容介绍了“如何使用matplotlib库实现图形局部数据放大显示”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、绘制总体图形impo...
    99+
    2023-06-29
  • 使用matplotlib库实现图形局部数据放大显示的实践
    目录一、绘制总体图形二、插入局部子坐标系三、限制局部子坐标系数据范围四、加上方框和连接线五、总体实现代码一、绘制总体图形 import numpy as np import matp...
    99+
    2024-04-02
  • 在macOS、Windows上使用VSCode + SSH实现远程Matplotlib图形显示
    简介 在 macOS 上使用 VSCode + SSH 环境来显示 Matplotlib 绘制的图形需要进行一些配置。因为默认情况下, Matplotlib 的图形是无法显示在远程计算机的桌面上的。您...
    99+
    2023-10-03
    macos vscode ssh
  • 如何使用JavaWeb实现显示mysql数据库数据
    小编给大家分享一下如何使用JavaWeb实现显示mysql数据库数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!EMS-员工信息管理系统MySQL学习之基础操作...
    99+
    2023-06-29
  • Vue如何实现点击图片放大显示功能
    这篇文章主要讲解了“Vue如何实现点击图片放大显示功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue如何实现点击图片放大显示功能”吧!方式一:列表中感应鼠标显示大图我管理后台使用的是 ...
    99+
    2023-07-05
  • vue3怎么使用useMouseInElement实现图片局部放大预览效果
    本文小编为大家详细介绍“vue3怎么使用useMouseInElement实现图片局部放大预览效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue3怎么使用useMouseInElement实现图片局部放大预览效果”文章能帮助大家解决...
    99+
    2023-07-05
  • JavaScript如何实现购物车图片局部放大预览效果
    这篇文章主要介绍了JavaScript如何实现购物车图片局部放大预览效果的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JavaScript如何实现购物车图片局部放大预览效果文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-05
  • vue3使用useMouseInElement实现图片局部放大预览效果实例代码
    目录1、首先要安装@vueuse/core2、实现过程如下:3、使用:在其他的.vue文件中导入组件即可使用4、效果如下:总结1、首先要安装@vueuse/core npm i @v...
    99+
    2023-03-19
    vue图片预览放大缩小 vue点击图片放大 vue实现文件预览功能
  • C++技术中的大数据处理:如何使用图形数据库存储和查询大规模图数据?
    c++++ 技术可通过利用图形数据库处理大规模图数据。具体步骤包括:创建 tinkergraph 实例,添加顶点和边,制定查询,获取结果值,并将结果转换为列表。 C++ 技术中的大数据...
    99+
    2024-05-11
    图数据库 大数据处理 apache c++
  • 如何使用CSS的clip-path属性实现不规则图形的显示
    小编给大家分享一下如何使用CSS的clip-path属性实现不规则图形的显示,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!clip-pathCSS 属性使用裁剪方...
    99+
    2023-06-08
  • 基于Springboot+vue如何实现图片上传至数据库并显示
    这篇文章主要讲解了“基于Springboot+vue如何实现图片上传至数据库并显示”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“基于Springboot+vue如何实现图片上传至数据库并显示...
    99+
    2023-07-06
  • 如何使用MongoDB实现数据的图数据库功能
    如何使用MongoDB实现数据的图数据库功能近年来,随着数据量的不断增长和复杂关系的日益重要,图数据库的应用变得越来越广泛。传统关系型数据库面对复杂的图状数据结构和大量的关系查询时,性能受限,而图数据库则能更好地解决这些问题。本文将介绍如何...
    99+
    2023-10-22
    数据 图数据库 MongoDB
  • 基于d3.js/neovis.js/neod3.js实现链接neo4j图形数据库的图像化显示功能
    目录一、使用d3.js二、 neo4jd3.js三、neovis.js一、基于D3.js (自由度高,写起来麻烦)二、基于neovis.js (基于d3库,简洁,但样式固定,自由度低...
    99+
    2024-04-02
  • Vue下如何使用press实现图片放大功能
    本篇内容介绍了“Vue下如何使用press实现图片放大功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VuePress 由两部分组成:一个...
    99+
    2023-07-04
  • 怎么用Springboot+vue实现图片上传至数据库并显示
    今天小编给大家分享一下怎么用Springboot+vue实现图片上传至数据库并显示的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下...
    99+
    2023-07-06
  • 如何使用 PHP 查询数据库并显示结果
    使用 php 查询数据库并显示结果的步骤:连接数据库;查询数据库;显示结果,遍历查询结果的行并输出特定列数据。 如何使用 PHP 查询数据库并显示结果 使用 PHP 查询数据库并显示结...
    99+
    2024-05-02
    php 数据库查询 mysql
  • 如何显示当前正在使用的MySQL数据库?
    我们可以通过 Select Database()命令显示当前正在使用的MySQL数据库的名称。mysql> select database(); +------------+ | database() | +------------+...
    99+
    2023-10-22
  • C#如何实现图表中鼠标移动并显示数据
    这篇文章将为大家详细讲解有关C#如何实现图表中鼠标移动并显示数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下效果图:首先在页面上添加一个label控件并 默认隐藏:给该图表添加MouseMo...
    99+
    2023-06-29
  • Visual C++中如何实现对图像数据的读取显示
    本篇文章为大家展示了Visual C++中如何实现对图像数据的读取显示,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在利用VC进行数据库编程时,经常需要处理数据库中的图像数据,将该图像从数据库中读取...
    99+
    2023-06-17
  • 如何使用R语言实现数据可视化绘图bar chart条形图
    这篇文章主要为大家展示了“如何使用R语言实现数据可视化绘图bar chart条形图”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用R语言实现数据可视化绘图bar cha...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作