是否有可能以交互方式编辑matplotlib图?

时间:2016-06-29 18:16:16

标签: python-3.x matplotlib

我不确定这是否是SE中可接受的问题。 我想知道是否可以交互式编辑matplotlib情节。即,

#  plot
plt.plot(x, y[1])
plt.plot(x, -1.0*y[2])
plt.show()

将打开带有情节的tk屏幕。现在,我想要修改linewidth或输入x/y label。是否可以以交互方式(在屏幕上,使用像xmgrace这样的鼠标或从gnuplot命令提示符这样做?)

4 个答案:

答案 0 :(得分:1)

您可以使用pylustrator进行简单的交互式编辑

pip install pylustrator

答案 1 :(得分:0)

你要求的一种做法(我认为)就是使用ipython。 ipython是一个交互式python环境,附带了许多python发行版。

一个简单的例子:

在cmd中,键入>>> ipython,它将加载ipython终端。在ipython中,输入:

import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, 1)
ax.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5], 'r-')
fig.show()

现在你有一个数字,同时ipython终端是"免费"。这意味着您可以对图形执行命令,例如ax.set_xlabel('XLABEL')ax.set_yticks([0, 5])。要在屏幕上显示,您需要重绘画布,这可以通过调用fig.canvas.draw()来完成。

请注意,使用ipython,您可以使用所有对象的所有函数完成制表符完成!键入fig.get_然后选项卡将为您提供以fig.get_开头的完整功能列表,这非常有用!

另请注意,您可以在ipython中运行python-scripts,在ipython-cmd中使用run SCRIPT.py,同时可以访问脚本中定义的所有变量。然后可以按上述方式使用它们。

希望这有帮助!

答案 2 :(得分:0)

不,通常不可能做你想做的事情(使用鼠标动态地与matplotlib交互)。 你看到的是你在“画布”上绘制你的情节,但它不包括像你一样的图形用户界面(GUI)。 xmgrace,Origin 等。

话虽如此,如果你想追求它,你有很多可能的选择,包括:

但是使用其他一些绘图软件可能可能更快更方便,有人已经为你设计了一个不错的用户界面。

或者,使用iPython笔记本快速修改绘图脚本效果很好。

答案 3 :(得分:0)

在qt4agg matplotlib后端中有一个导航工具栏,您可以轻松添加它。数量不多,但至少可以很好地扩展...

![enter image description here

不是有效的代码,只是一些片段:

from matplotlib.backends.backend_qt4agg import FigureCanvas
from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar
from matplotlib.figure import Figure
from matplotlib.backends.qt_compat import QtCore, QtWidgets, is_pyqt5

self.figure = Figure(figsize=(5, 3))
self.canvas = FigureCanvas(self.figure)
self.addToolBar(QtCore.Qt.BottomToolBarArea,
                NavigationToolbar(self.canvas, self))

Self是从QtGui.QMainWindow派生的窗口对象。