交互式绘图 - 交互式导航

优质
小牛编辑
144浏览
2023-12-01

原文:Interactive navigation

交互式导航 - 图1

所有图形窗口都带有导航工具栏,可用于浏览数据集。 以下是工具栏底部的每个按钮的说明:

交互式导航 - 图2

Home(首页)、Forward(前进)和Back(后退)按钮:

这些类似于 Web 浏览器的前进和后退按钮。 它们用于在之前定义的视图之间来回浏览。 它们没有意义,除非你已经使用平移和缩放按钮访问了其他地方。 这类似于尝试在访问新页面之前单击 Web 浏览器上的返回 - 什么都不会发生。 首页总是你第一个浏览的页面,以及你的数据的默认视图。 对于HomeForwardBack,应该将其看做 Web浏览器,其中的数据视图是网页。 使用PanZoom来定义新视图。

交互式导航 - 图3

Pan/Zoom(平移/缩放)按钮

此按钮有两种模式:平移和缩放。 单击工具栏按钮激活平移和缩放,然后将鼠标放在轴域的某个地方。 按住鼠标左键并将其拖动到新位置来平移图形。 当你释放它时,你按下的点处的数据将移动到你释放的点。 如果在平移时按'x''y',移动会分别限制在xy轴。 按鼠标右键并将其拖动到新位置来进行缩放。 向右移动使x轴成比例放大,或者向左移动成比例缩小。 y轴和上/下移动同上。 开始缩放时鼠标下的点会保持静止,你可以缩放图形中的其它任意点。 你可以使用快捷键'x''y'CONTROL分别将缩放约束为x轴,y轴或保留宽高比。

使用极坐标绘图时,平移和缩放功能的行为不同。 可以使用鼠标左键拖动半径轴标签。 可以使用鼠标右键放大和缩小半径刻度。

交互式导航 - 图4

Zoom-to-rectangle(缩放到矩形)按钮

单击此工具栏按钮以激活此模式。 将鼠标放在轴域的某处,然后按鼠标左键。 在按住按钮的同时拖动鼠标到新位置并释放。 轴域会放大并限制于你定义的矩形。 在此模式中还有一个实验性的zoom out to rectangle(缩小到矩形),使用右键,将整个轴域缩小并放置在矩形定义的区域中。

交互式导航 - 图5

Subplot-configuration(子图配置)按钮

使用此工具配置子图的参数:左边距,右边距,上边距,下边距,行间隔和列间隔。

交互式导航 - 图6

Save(保存)按钮

单击此按钮可启动文件保存对话框。 你可以使用以下扩展名保存文件:pngpsepssvgpdf

浏览快捷键

下表包含所有默认的快捷键,可以使用matplotlibrc#keymap.*)覆盖。

命令快捷键
主页/重置hrhome
后退c、左箭头或backspace
前进v或右箭头
平移/缩放p
缩放到矩形o
保存ctrl + s
切换全屏ctrl + f
关闭绘图ctrl + w
将平移/缩放限制于x使用鼠标平移/缩放时按住x
将平移/缩放限制于y使用鼠标平移/缩放时按住y
保留宽高比使用鼠标平移/缩放时按住CONTROL
切换网格鼠标在轴域上时按下g
切换x轴刻度(对数/线性)鼠标在轴域上时按下Lk
切换y轴刻度(对数/线性)鼠标在轴域上时按下l

如果你使用matplotlib.pyplot,则会为每个图形自动创建工具栏。 如果你正在编写自己的用户界面代码,则可以将工具栏添加为窗口小部件。 确切的语法取决于你的 UI,但在`matplotlib/examples/user_interfaces目录中有每个受支持的 UI 的示例。 这里是一些 GTK 的示例代码:

  1. import gtk
  2. from matplotlib.figure import Figure
  3. from matplotlib.backends.backend_gtkagg import FigureCanvasGTKAgg as FigureCanvas
  4. from matplotlib.backends.backend_gtkagg import NavigationToolbar2GTKAgg as NavigationToolbar
  5. win = gtk.Window()
  6. win.connect("destroy", lambda x: gtk.main_quit())
  7. win.set_default_size(400,300)
  8. win.set_title("Embedding in GTK")
  9. vbox = gtk.VBox()
  10. win.add(vbox)
  11. fig = Figure(figsize=(5,4), dpi=100)
  12. ax = fig.add_subplot(111)
  13. ax.plot([1,2,3])
  14. canvas = FigureCanvas(fig) # a gtk.DrawingArea
  15. vbox.pack_start(canvas)
  16. toolbar = NavigationToolbar(canvas, win)
  17. vbox.pack_start(toolbar, False, False)
  18. win.show_all()
  19. gtk.main()