我已经用matplotlib成功地绘制了一组日期序列数据(X轴是日期)。但是,我希望能够在绘制的图形上从一个(日期1,y1)到另一个(日期2,y2)手动绘制直线。matplotlib交互式图形(手动在图形上绘制线)
我似乎无法找到任何示例说明如何做到这一点 - 或者甚至是可行的。
总之,这就是我想做的事:
- 绘制了一组上绘制图形
- 保存线的手工画出的线条数据保存到文件
- 负载手工画出的线条数据从文件(以重新创建图表)
- 理想情况下,我想存储关于画出的线条的元数据'(例如,颜色,线宽等)
有人可以发布一个框架片段(最好有链接到更多信息),以显示如何开始实现此功能(主要要求是能够在图表上手动绘制线条,然后将线条保存/加载到情节)。
注意:通过'手动',我的意思是能够通过点击一个点,然后单击绘图中的另一个点绘制线。绘制在两个点之间的线(或简单地点击的点并拖动,并且在另一点上所绘制的曲线图释放鼠标)
[[更新]]
达维,非常感谢您提供的片段。这使我可以做我正在做的事情 - 但是,只要画布上画线(第二次单击鼠标后),GUI会崩溃,并在控制台上显示此警告消息:
/usr/local/lib/python2.6/dist-packages/matplotlib/backend_bases.py:2192: DeprecationWarning: Using default event loop until function specific to this GUI is implemented
warnings.warn(str,DeprecationWarning)
你知道是什么原因导致此警告和程序突然终止?
另外,是否可以在图上绘制多条线? (我猜这将涉及写一些事件处理程序,将实例化一个linedrawer变量)。目前,我有机会在“应用”突然终止之前画出一行。
“手动”不明确(并且将其用粗体表示并不能解决歧义)。你的意思是手动点击一个点然后点击另一个点,或者你的意思是手动输入内容?或者足够了? – DSM 2012-02-03 23:45:56
@DSM:澄清问题中使用的'手动'的含义。HTH – 2012-02-03 23:53:52
http://matplotlib.sourceforge.net/api/widgets_api.html可能是开始的地方。 – 2012-02-04 00:00:51