我不确定这是否是SE中可接受的问题。
我想知道是否可以交互式编辑matplotlib
情节。即,
# plot
plt.plot(x, y[1])
plt.plot(x, -1.0*y[2])
plt.show()
将打开带有情节的tk
屏幕。现在,我想要修改linewidth
或输入x/y label
。是否可以以交互方式(在屏幕上,使用像xmgrace
这样的鼠标或从gnuplot
命令提示符这样做?)
答案 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后端中有一个导航工具栏,您可以轻松添加它。数量不多,但至少可以很好地扩展...
不是有效的代码,只是一些片段:
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派生的窗口对象。