当前位置: 首页 > 面试题库 >

在Linux上使用可滚动的x(时间/水平)轴绘制数据

何建中
2023-03-14
问题内容

我想在x轴较长的地方绘制数据。如果我绘制整个x轴,则图会缩小并且几乎无法读取。我在SO上找到了这个答案,它指向以下scipy
/ matplotlib代码。但是,当我尝试运行上述代码时,出现以下错误:

Traceback (most recent call last):
  File "scrollingPlot.py", line 88, in <module>
    app = MyApp()
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 8628, in __init__
    self._BootstrapApp()
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 8196, in _BootstrapApp
    return _core_.PyApp__BootstrapApp(*args, **kwargs)
  File "scrollingPlot.py", line 82, in OnInit
    self.frame = MyFrame(parent=None,id=-1)
  File "scrollingPlot.py", line 21, in __init__
    self.scroll_range)
  File "/usr/lib/python2.7/dist-packages/wx-3.0-gtk2/wx/_core.py", line 11226, in SetScrollbar
    return _core_.Window_SetScrollbar(*args, **kwargs)
wx._core.PyAssertionError: C++ assertion "sb" failed at ../src/gtk/window.cpp(4754) in SetScrollbar(): this window is not scrollable

PS:也欢迎其他解决方案(最好是python,R或一些简单的多平台解决方案

PPS:我已经打开了提到的错误的问题


问题答案:

您是否考虑过使用matplotlib滑块小部件?

这里有一些代码只是作为示例显示

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider

fig, ax = plt.subplots()
plt.subplots_adjust(bottom=0.25)

t = np.arange(0.0, 100.0, 0.1)
s = np.sin(2*np.pi*t)
l, = plt.plot(t,s)
plt.axis([0, 10, -1, 1])

axcolor = 'lightgoldenrodyellow'
axpos = plt.axes([0.2, 0.1, 0.65, 0.03], axisbg=axcolor)

spos = Slider(axpos, 'Pos', 0.1, 90.0)

def update(val):
    pos = spos.val
    ax.axis([pos,pos+10,-1,1])
    fig.canvas.draw_idle()

spos.on_changed(update)

plt.show()


 类似资料:
  • 本文向大家介绍Vue实现可移动水平时间轴,包括了Vue实现可移动水平时间轴的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Vue实现可移动水平时间轴的具体代码,供大家参考,具体内容如下 里程碑时间轴具体实现 效果图 编辑里程碑效果图 编辑里程碑 stonedetail.vue 关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。 以上就是本文的全部内容,希望对

  • 问题内容: 我正在尝试根据日期绘制信息。我有日期列表,格式为“ 01/02/1991”。 我通过执行以下操作来转换它们: 这使 然后我尝试使用num2date 绘图: 但是我得到一个错误。它显示“ ValueError:年份超出范围”。有什么办法吗? 问题答案: 就像@KyssTao所说的那样,必须是一个浮点数,其中要给出从0001-01-01开始的天数加一。因此,它不是1991年1月2日,因为如

  • 我试图在一个5年的时间序列图上绘制日期(N=50),我很难弄清楚如何在for循环上运行迭代。下面是我试图绘制日期的一个例子。 我正在绘制日期的视觉效果 目前,我正在尝试: 我收到一个错误: 我不确定这是否与dtype是datetime有关,或者我是否需要尝试另一种方法,但是任何建议/指导都非常感谢! 谢谢你! 这就是我试图完成的:示例图像 编辑:生成打印的代码 ` 这将复制我使用的精确数据的样本。

  • 问题内容: 我正在使用计算器。我注意到,在默认的android calc中,您可以水平滚动textview。我查阅了文档,发现了该属性,但是将其添加到textview后,我仍然无法进行水平滚动,文档中没有关于它的更多信息,使我认为仅添加attr就足够了。这是计算器的文本视图: 当字符超过textview宽度时,将修剪字符串,并在末尾显示…。我究竟做错了什么? 问题答案: 这样可以使textview

  • 问题内容: 我已经使用样条插值法来平滑时间序列,并且还想在绘图中添加一条水平线。但是似乎有一个我无法控制的问题。任何帮助都会非常有帮助。这是我所拥有的: 问题似乎与我对水平线图的使用有关。 问题答案: 您是正确的,我认为这使您失望。您将要重用原始的x轴变量,并使用另一个包含变量的相同长度的numpy数组对其进行绘制。 希望可以解决问题!

  • 我使用样条插值来平滑时间序列,还想在图中添加一条水平线。但是似乎有一个问题超出了我的控制范围。任何帮助都会很有帮助。这是我所拥有的: 问题似乎在于我使用进行水平线绘制。