matplotlib绘图过程中用鼠标调整图像大小怎样实现

Admin 2022-09-05 群英技术资讯 496 次浏览

在实际应用中,我们有时候会遇到“matplotlib绘图过程中用鼠标调整图像大小怎样实现”这样的问题,我们该怎样来处理呢?下文给大家介绍了解决方法,希望这篇“matplotlib绘图过程中用鼠标调整图像大小怎样实现”文章能帮助大家解决问题。


思路:
  1. 使用fig.canvas.mpl_connect()函数来绑定相关fig的滚轮事件
  2. 利用事件event的inaxes属性获取当前鼠标所在坐标系ax
  3. 使用get_xlim()函数获取坐标系ax的x/y轴坐标刻度范围
  4. 使用set()函数对坐标系ax进行放大/缩小

示例:

import matplotlib.pyplot as plt
import numpy as np
 
fig = plt.figure()
def call_back(event):
    axtemp=event.inaxes
    x_min, x_max = axtemp.get_xlim()
    fanwei = (x_max - x_min) / 10
    if event.button == 'up':
        axtemp.set(xlim=(x_min + fanwei, x_max - fanwei))
        print('up')
    elif event.button == 'down':
        axtemp.set(xlim=(x_min - fanwei, x_max + fanwei))
        print('down')
    fig.canvas.draw_idle()  # 绘图动作实时反映在图像上
fig.canvas.mpl_connect('scroll_event', call_back)
fig.canvas.mpl_connect('button_press_event', call_back)
 
ax1 = plt.subplot(3,1,1)#截取幕布的一部分
ax1.xaxis.set_major_formatter(plt.NullFormatter())  # 取消x轴坐标
x = np.linspace(-5, 5, 10)
y = x ** 2 + 1
plt.ylabel('first')
plt.plot(x, y)
plt.grid()
ax2 = plt.subplot(3,1,2)
ax2.xaxis.set_major_formatter(plt.NullFormatter())  # 取消x轴坐标
y1=-x**2+1
plt.plot(x, y1)
 
ax3 = plt.subplot(3,1,3)
y3=-x*2+1
plt.plot(x, y3)
 
plt.show()

输出效果:

PS:在相应坐标系内滚动鼠标滚轮即可放大/缩小x轴。

总结


“matplotlib绘图过程中用鼠标调整图像大小怎样实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业技术相关的知识可以关注群英网络网站,小编每天都会为大家更新不同的知识。 群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服