我是一个尝试使用python开发GUI的新手。我的数据是一个.sgy文件,我需要显示图形作为输出。我选择了皮格勒来做所以。是吗这是一个正确的选择?在第一步中,我想在窗口的标签中显示地震数据的标题。下面是我尝试过的代码:
import pyglet
import sys
import numpy as np #package for numerical processing
import matplotlib #package for plotting graphs
import obspy #package for reading sgy file
import pandas #package for handling csv file
from obspy.io.segy.segy import _read_segy
from obspy.core.util import get_example_file
window = pyglet.window.Window()
filename = get_example_file("/home/khyati/Downloads/FindTrappedMiners.SGY")
st = _read_segy(filename)
for i in st.traces:
label = pyglet.text.Label(i,
font_name='Times New Roman',
font_size=36,
x=window.width//2,
y=window.height//2,
anchor_x='center', anchor_y='center')
@window.event
def on_draw():
window.clear()
label.draw()
pyglet.app.run()
这是我遇到的错误
^{pr2}$任何帮助都将不胜感激。在
根据ObsPy documentation,在
st
中每个元素都有一个stats
值。在由于
st
本身似乎是一个数据数组,而您只需提取每个数据的ID,所以您有两到三个选项。在第一,如果您想将ID打印为图形标签,那么按照@furas的话:
或者,您可以通过两个选项提取要显示的数据:
^{pr2}$或者
^{3}$不管怎样,您的主要问题是pyglet.text.Label将
str
作为text
参数。你可以插入一个整数作为第一个参数。转换int或使用跟踪文件中文本表示的数据。在还请注意,通过执行
for i in x: label = <insert label>
操作,您将替换每个循环上的标签,并且在on_draw()
函数之外执行此操作,这意味着您实际上只创建一个标签。也许你已经想好了,或者这是故意的,但值得一提。在免责声明:我从未与obspy合作过,我只是与Pyglet合作过很多次,所以也许有更熟悉obspy的人会纠正我对这些数据的使用。在
相关问题 更多 >
编程相关推荐