以pyg格式在标签中显示动态值

2024-09-29 01:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个尝试使用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}$

任何帮助都将不胜感激。在


Tags: 数据fromimportpackageforreadgetexample
0条回答
网友
1楼 · 发布于 2024-09-29 01:33:15

根据ObsPy documentation,在st中每个元素都有一个stats值。在

由于st本身似乎是一个数据数组,而您只需提取每个数据的ID,所以您有两到三个选项。在

第一,如果您想将ID打印为图形标签,那么按照@furas的话:

for i in st.traces:
    label = pyglet.text.Label(str(i),
                      x=window.width//2,
                      y=window.height//2,
                      anchor_x='center', anchor_y='center')

或者,您可以通过两个选项提取要显示的数据:

^{pr2}$

或者

^{3}$

不管怎样,您的主要问题是pyglet.text.Labelstr作为text参数。你可以插入一个整数作为第一个参数。转换int或使用跟踪文件中文本表示的数据。在

还请注意,通过执行for i in x: label = <insert label>操作,您将替换每个循环上的标签,并且在on_draw()函数之外执行此操作,这意味着您实际上只创建一个标签。也许你已经想好了,或者这是故意的,但值得一提。在

免责声明:我从未与obspy合作过,我只是与Pyglet合作过很多次,所以也许有更熟悉obspy的人会纠正我对这些数据的使用。在

相关问题 更多 >