精华内容
下载资源
问答
  • 数据显示
    千次阅读
    2021-12-31 16:37:15

    以下代码分为python3版本与python2版本,

    python3版本主要靠
    self.main_window.after( 刷新的时间毫秒, 需要刷新的函数这里为窗口的清除与插入函数) 刷新函数进行 ,

    python2版本则通过编写一个线程进行刷新作用,刷新函数在python2 环境下会报错…
    至于我为什么知道python2会出现这个问题,那就是ros没python3的版本…

    示意图

    (数据就会在后面的框里面通过程序运行时的值的改变而改变):

    在这里插入图片描述
    python3版本

    不解释了直接可以运行,运行效果为不断的刷新一号测距仪的值
    在这里插入图片描述

    #!/usr/bin/env python2.7
    # coding:utf-8
    # -*- coding: utf-8 -*-
    
    """通过开启tcp客户端进行接收,更新下位机的服务端更新的数据"""
    
    import tkinter
    
    class Status():
        """解析的依据在于,status键对应的标识符,具体的参考word手册"""
        def __init__(self):
    
    
            self.json_data = {} #
            self.odom()
    
    
        def odom(self):
            "用于储存小车底盘的,里程计,瞬时速度等信息"
            self.x = -0.99
            self.y = -0.99
            self.p = -0.99
            self.vx = -0.99
            self.vy = -0.99
            self.vp = -0.99
            self.s_x = -0.99
            self.s_y = -0.99
            self.s_p = -0.99
    
    
        # def save_judge_status(self,json_data):
        #     """对服务器传来的,单条json数据进行解析,判断是否符合,协议,并根据协议,取出对应 dict的有效值"""
        #     """若通过判断,则表示为无效量"""
        #     status_name =  json_data["status"]
        #     if status_name in ["Odom_m"]:
        #         #此时说明,传输正确  对应cs1
    
    
    s_data = Status()
    
    
    
    class MYIP():
    
        def __init__(self):
            print("开启显示窗口模块-----------------------")
    
            self.refresh_rate = 300
            # main frame
            self.main_window = tkinter.Tk()
    
            # top frame
            self.top_frame = tkinter.Frame(self.main_window)
            # bottom frame
            self.bottom_frame = tkinter.Frame(self.main_window)
    
            self.L1 = tkinter.Label(self.top_frame, text='底盘驱动')
            self.L1.pack(side='left')
            default_value = tkinter.StringVar()
            default_value.set('V3.1 python3(客户端)版本')
            self.E1 = tkinter.Entry(self.top_frame, textvariable=default_value, bd=2)
            self.E1.pack(side=tkinter.LEFT)
    
            self.bottom_left = tkinter.Frame(self.bottom_frame)
            self.bottom_right = tkinter.Frame(self.bottom_frame)
    
            self.label1 = tkinter.Label(self.bottom_left, text="%-10s" % "1号测距仪")
            self.label2 = tkinter.Label(self.bottom_left, text="%-10s" % '2号测距仪')
            self.label3 = tkinter.Label(self.bottom_left, text="%-10s" % '3号测距仪')
            self.label4 = tkinter.Label(self.bottom_left, text="%-10s" % '4号测距仪')
            self.label5 = tkinter.Label(self.bottom_left, text="%-10s" % '5号测距仪')
            self.label6 = tkinter.Label(self.bottom_left, text="%-10s" % '6号测距仪')
    
            self.label7 = tkinter.Label(self.bottom_left, text="%-10s" % '7号测距仪')
            self.label8 = tkinter.Label(self.bottom_left, text="%-10s" % '8号测距仪')
            self.label9 = tkinter.Label(self.bottom_left, text="%-10s" % '9号测距仪')
            self.label10 = tkinter.Label(self.bottom_left, text="%-10s" % '刷新率')
    
            self.label1.pack(side='top')
            self.label2.pack(side='top')
            self.label3.pack(side='top')
            self.label4.pack(side='top')
            self.label5.pack(side='top')
            self.label6.pack(side='top')
            self.label7.pack(side='top')
            self.label8.pack(side='top')
            self.label9.pack(side='top')
            self.label10.pack(side='top')
    
            self.En1 = tkinter.Entry(self.bottom_right)
            self.En2 = tkinter.Entry(self.bottom_right)
            self.En3 = tkinter.Entry(self.bottom_right)
            self.En4 = tkinter.Entry(self.bottom_right)
            self.En5 = tkinter.Entry(self.bottom_right)
            self.En6 = tkinter.Entry(self.bottom_right)
    
            self.En7 = tkinter.Entry(self.bottom_right)
            self.En8 = tkinter.Entry(self.bottom_right)
            self.En9 = tkinter.Entry(self.bottom_right)
            self.En10 = tkinter.Entry(self.bottom_right)
    
            ret = ("label1", "label2", "label3", "label4", "label5", "label6")
            self.En1.delete(0, tkinter.END)
            self.En2.delete(0, tkinter.END)
            self.En3.delete(0, tkinter.END)
            self.En4.delete(0, tkinter.END)
            self.En5.delete(0, tkinter.END)
            self.En6.delete(0, tkinter.END)
            self.En1.insert(0, ret[0])
            self.En2.insert(0, ret[1])
            self.En3.insert(0, ret[2])
            self.En4.insert(0, ret[3])
            self.En5.insert(0, ret[4])
            self.En6.insert(0, ret[5])
    
            self.En1.pack(side='top')
            self.En2.pack(side='top')
            self.En3.pack(side='top')
            self.En4.pack(side='top')
            self.En5.pack(side='top')
            self.En6.pack(side='top')
    
            self.En7.pack(side='top')
            self.En8.pack(side='top')
            self.En9.pack(side='top')
            self.En10.pack(side='top')
    
            self.bottom_left.pack(side='left')
            self.bottom_right.pack(side='right')
            self.top_frame.pack()
            self.bottom_frame.pack()
    
            self.c_1 = -1
            self.c_2 = -1
            self.c_3 = -1
            self.c_4 = -1
            self.c_5 = -1
            self.c_6 = -1
            self.c_7 = -1
            self.c_8 = -1
            self.c_9 = -1
            self.ref_num = -1
            self.main_window.after(100, self.updata_node)
            self.main_window.mainloop()
    
        def updata_node(self):
            print("刷新一次")
    
            self.updata_xyp()
            # 接下来刷新页面
            self.En1.delete(0, 10)
            self.En1.insert(0, str(self.c_1))  # delete
            self.En1.update()
    
            self.En2.delete(0, 10)
            self.En2.insert(0, str(self.c_2))  # delete
            self.En2.update()
    
            self.En3.delete(0, 10)
            self.En3.insert(0, str(self.c_3))  # delete
            self.En3.update()
    
            self.En4.delete(0, 10)
            self.En4.insert(0, str(self.c_4))  # delete
            self.En4.update()
    
            self.En5.delete(0, 10)
            self.En5.insert(0, str(self.c_5))  # delete
            self.En5.update()
    
            self.En6.delete(0, 10)
            self.En6.insert(0, str(self.c_6))  # delete
            self.En6.update()
    
            self.En7.delete(0, 10)
            self.En7.insert(0, str(self.c_7))  # delete
            self.En7.update()
    
            self.En8.delete(0, 10)
            self.En8.insert(0, str(self.c_8))  # delete
            self.En9.update()
    
            self.En9.delete(0, 10)
            self.En9.insert(0, str(self.c_9))  # delete
            self.En9.update()
    
            self.En10.delete(0, 10)
            self.En10.insert(0, str(self.ref_num))  # delete
            self.En10.update()
    
            self.main_window.after(self.refresh_rate, self.updata_node)
    
        def updata_xyp(self):
            """通过客户端连接到下位机服务端收到的数据更新"""
            print("4564 : " + str(s_data.x))
            s_data.x = s_data.x + 1
            self.c_1 = s_data.x
            # self.y = s_data.y
            # self.w = s_data.p
    
    
    if __name__ == '__main__':
        # c = Client_link()
        # c.start_client()
        # print("开启tcp客户端线程拉起完成")
    
        m_win = MYIP()
    
    
    
    
    
    
    
    
    

    python2版本

    以下为代码,我这里在下面提供两个代码示例:

    1.(第一部分)修改为可以直接运行显示,但注释掉了刷新数据的线程部分的,无法对数据进行更新。

    """注意这个 窗口拉起接口在 一 二 部分中被调用的不同的写法"""
    self.main_window.mainloop()
    

    2.(第二部分)没有注释掉线程部分,需要通过 from import 的方法在另外一个py文件的线程中进行调用更新,下面是我截取的部分在另一个py文件中的调用,示例

    from hint_window import m_win
    
    
     def t_correct(self):
            t_correct = threading.Thread(target=self.calculate_instant_speed)
            t_correct.setDaemon(True)
            t_correct.start()
      def calculate_instant_speed(self):
            """用于更新瞬时速度"""
            """
            self.x_speed ,self.y_speed, self.p_speed
            """
            
    
                m_win.updata_node("vx", self.x_speed)
                m_win.updata_node("vy", self.y_speed)
                m_win.updata_node("vw", self.p_speed)
    
    
    

    (第一部分):

    #!/usr/bin/env python2.7
    #coding:utf-8
    # -*- coding: utf-8 -*-
    import tkinter
    # import ctypes
    import time
    import threading
    
    class MYIP(threading.Thread):
    
        def __init__(self):
            # 隐藏窗口
            # whnd = ctypes.windll.kernel32.GetConsoleWindow()
            # if whnd != 0:
            #     ctypes.windll.user32.ShowWindow(whnd, 0)
            #     ctypes.windll.kernel32.CloseHandle(whnd)
    
    
    
            # main frame
            self.main_window = tkinter.Tk()
    
            # top frame
            self.top_frame = tkinter.Frame(self.main_window)
            # bottom frame
            self.bottom_frame = tkinter.Frame(self.main_window)
    
            self.L1 = tkinter.Label(self.top_frame, text='底盘驱动')
            self.L1.pack(side='left')
            default_value = tkinter.StringVar()
            default_value.set('V2.1 python2版本')
            self.E1 = tkinter.Entry(self.top_frame, textvariable=default_value, bd=2)
            self.E1.pack(side=tkinter.LEFT)
    
            self.bottom_left = tkinter.Frame(self.bottom_frame)
            self.bottom_right = tkinter.Frame(self.bottom_frame)
    
            self.label1 = tkinter.Label(self.bottom_left, text="%-10s" % "X(mm)")
            self.label2 = tkinter.Label(self.bottom_left, text="%-10s" % 'Y(mm)')
            self.label3 = tkinter.Label(self.bottom_left, text="%-10s" % 'W(度)')
            self.label4 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vx(m/s)')
            self.label5 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vy(m/s)')
            self.label6 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vw(rad/s)')
    
            self.label7 = tkinter.Label(self.bottom_left, text="%-10s" % 'C_x')
            self.label8 = tkinter.Label(self.bottom_left, text="%-10s" % 'C_y')
            self.label9 = tkinter.Label(self.bottom_left, text="%-10s" % 'C_w')
    
            self.label1.pack(side='top')
            self.label2.pack(side='top')
            self.label3.pack(side='top')
            self.label4.pack(side='top')
            self.label5.pack(side='top')
            self.label6.pack(side='top')
            self.label7.pack(side='top')
            self.label8.pack(side='top')
            self.label9.pack(side='top')
    
            self.En1 = tkinter.Entry(self.bottom_right)
            self.En2 = tkinter.Entry(self.bottom_right)
            self.En3 = tkinter.Entry(self.bottom_right)
            self.En4 = tkinter.Entry(self.bottom_right)
            self.En5 = tkinter.Entry(self.bottom_right)
            self.En6 = tkinter.Entry(self.bottom_right)
    
            self.En7 = tkinter.Entry(self.bottom_right)
            self.En8 = tkinter.Entry(self.bottom_right)
            self.En9 = tkinter.Entry(self.bottom_right)
    
            ret = ("label1", "label2", "label3", "label4", "label5", "label6")
            self.En1.delete(0, tkinter.END)
            self.En2.delete(0, tkinter.END)
            self.En3.delete(0, tkinter.END)
            self.En4.delete(0, tkinter.END)
            self.En5.delete(0, tkinter.END)
            self.En6.delete(0, tkinter.END)
            self.En1.insert(0, ret[0])
            self.En2.insert(0, ret[1])
            self.En3.insert(0, ret[2])
            self.En4.insert(0, ret[3])
            self.En5.insert(0, ret[4])
            self.En6.insert(0, ret[5])
    
            self.En1.pack(side='top')
            self.En2.pack(side='top')
            self.En3.pack(side='top')
            self.En4.pack(side='top')
            self.En5.pack(side='top')
            self.En6.pack(side='top')
    
            self.En7.pack(side='top')
            self.En8.pack(side='top')
            self.En9.pack(side='top')
    
            self.bottom_left.pack(side='left')
            self.bottom_right.pack(side='right')
            self.top_frame.pack()
            self.bottom_frame.pack()
            print("准备开启窗口数据更新线程")
            self.main_window.mainloop()
    
            # t_updata = threading.Thread(target=self.updata_datas)
            # t_updata.start()
    
    
    
    
        def updata_datas(self):
            while True:
                # self.label1 = tkinter.Label(self.bottom_left, text="%-10s" % "X(mm)")
                # self.label2 = tkinter.Label(self.bottom_left, text="%-10s" % 'Y(mm)')
                # self.label3 = tkinter.Label(self.bottom_left, text="%-10s" % 'W(度)')
                # self.label4 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vx(m/s)')
                # self.label5 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vy(m/s)')
                # self.label6 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vw(rad/s)')
                print (110)
                time.sleep(0.2)
                self.main_window.mainloop()
        
        def updata_node(self,name,val):
            if name == "x":
                self.En1.delete(0, 10)
                self.En1.insert(0, str(val))  # delete
            elif name == "y":
                self.En2.delete(0, 10)
                self.En2.insert(0, str(val))  # delete
            elif name == "w":
                self.En3.delete(0, 10)
                self.En3.insert(0, str(val))  # delete
            elif name == "vx":
                self.En4.delete(0, 10)
                self.En4.insert(0, str(val))  # delete
            elif name == "vy":
                self.En5.delete(0, 10)
                self.En5.insert(0, str(val))  # delete
            elif name == "vw":
                self.En6.delete(0, 10)
                self.En6.insert(0, str(val))  # delete
            elif name == "cx":
                self.En7.delete(0, 10)
                self.En7.insert(0, str(val))  # delete
            elif name == "cy":
                self.En8.delete(0, 10)
                self.En8.insert(0, str(val))  # delete
            elif name == "cw":
                self.En9.delete(0, 10)
                self.En9.insert(0, str(val))  # delete
    
    
    
    
    
        def process_data(self):
            if self.jsondata['data']['country']:
                country = self.jsondata['data']['country']
            else:
                country = "NULL"
    
            if self.jsondata['data']['area']:
                area = self.jsondata['data']['area']
            else:
                area = "NULL"
    
            if self.jsondata['data']['region']:
                region = self.jsondata['data']['region']
            else:
                region = "NULL"
    
            if self.jsondata['data']['city']:
                city = self.jsondata['data']['city']
            else:
                city = "NULL"
    
            if self.jsondata['data']['county']:
                county = self.jsondata['data']['county']
            else:
                county = "NULL"
    
            if self.jsondata['data']['isp']:
                isp = self.jsondata['data']['isp']
            else:
                isp = "NULL"
            return (country, area, region, city, county, isp)
    
    
    
    m_win = MYIP()
    
    # if __name__ == '__main__':
    #
    #     m_win = MYIP()
    

    (第二部分):

    #!/usr/bin/env python2.7
    # coding:utf-8
    # -*- coding: utf-8 -*-
    import tkinter
    # import ctypes
    import time
    import threading
    
    
    class MYIP(threading.Thread):
    
        def __init__(self):
            # 隐藏窗口
            # whnd = ctypes.windll.kernel32.GetConsoleWindow()
            # if whnd != 0:
            #     ctypes.windll.user32.ShowWindow(whnd, 0)
            #     ctypes.windll.kernel32.CloseHandle(whnd)
    
            # main frame
            self.main_window = tkinter.Tk()
    
            # top frame
            self.top_frame = tkinter.Frame(self.main_window)
            # bottom frame
            self.bottom_frame = tkinter.Frame(self.main_window)
    
            self.L1 = tkinter.Label(self.top_frame, text='底盘驱动')
            self.L1.pack(side='left')
            default_value = tkinter.StringVar()
            default_value.set('V2.1 python2版本')
            self.E1 = tkinter.Entry(self.top_frame, textvariable=default_value, bd=2)
            self.E1.pack(side=tkinter.LEFT)
    
            self.bottom_left = tkinter.Frame(self.bottom_frame)
            self.bottom_right = tkinter.Frame(self.bottom_frame)
    
            self.label1 = tkinter.Label(self.bottom_left, text="%-10s" % "X(mm)")
            self.label2 = tkinter.Label(self.bottom_left, text="%-10s" % 'Y(mm)')
            self.label3 = tkinter.Label(self.bottom_left, text="%-10s" % 'W(度)')
            self.label4 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vx(m/s)')
            self.label5 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vy(m/s)')
            self.label6 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vw(rad/s)')
    
            self.label7 = tkinter.Label(self.bottom_left, text="%-10s" % 'C_x')
            self.label8 = tkinter.Label(self.bottom_left, text="%-10s" % 'C_y')
            self.label9 = tkinter.Label(self.bottom_left, text="%-10s" % 'C_w')
    
            self.label1.pack(side='top')
            self.label2.pack(side='top')
            self.label3.pack(side='top')
            self.label4.pack(side='top')
            self.label5.pack(side='top')
            self.label6.pack(side='top')
            self.label7.pack(side='top')
            self.label8.pack(side='top')
            self.label9.pack(side='top')
    
            self.En1 = tkinter.Entry(self.bottom_right)
            self.En2 = tkinter.Entry(self.bottom_right)
            self.En3 = tkinter.Entry(self.bottom_right)
            self.En4 = tkinter.Entry(self.bottom_right)
            self.En5 = tkinter.Entry(self.bottom_right)
            self.En6 = tkinter.Entry(self.bottom_right)
    
            self.En7 = tkinter.Entry(self.bottom_right)
            self.En8 = tkinter.Entry(self.bottom_right)
            self.En9 = tkinter.Entry(self.bottom_right)
    
            ret = ("label1", "label2", "label3", "label4", "label5", "label6")
            self.En1.delete(0, tkinter.END)
            self.En2.delete(0, tkinter.END)
            self.En3.delete(0, tkinter.END)
            self.En4.delete(0, tkinter.END)
            self.En5.delete(0, tkinter.END)
            self.En6.delete(0, tkinter.END)
            self.En1.insert(0, ret[0])
            self.En2.insert(0, ret[1])
            self.En3.insert(0, ret[2])
            self.En4.insert(0, ret[3])
            self.En5.insert(0, ret[4])
            self.En6.insert(0, ret[5])
    
            self.En1.pack(side='top')
            self.En2.pack(side='top')
            self.En3.pack(side='top')
            self.En4.pack(side='top')
            self.En5.pack(side='top')
            self.En6.pack(side='top')
    
            self.En7.pack(side='top')
            self.En8.pack(side='top')
            self.En9.pack(side='top')
    
            self.bottom_left.pack(side='left')
            self.bottom_right.pack(side='right')
            self.top_frame.pack()
            self.bottom_frame.pack()
            print("准备开启窗口数据更新线程")
            # self.main_window.mainloop()
    
            t_updata = threading.Thread(target=self.updata_datas)
            t_updata.start()
    
        def updata_datas(self):
            while True:
                # self.label1 = tkinter.Label(self.bottom_left, text="%-10s" % "X(mm)")
                # self.label2 = tkinter.Label(self.bottom_left, text="%-10s" % 'Y(mm)')
                # self.label3 = tkinter.Label(self.bottom_left, text="%-10s" % 'W(度)')
                # self.label4 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vx(m/s)')
                # self.label5 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vy(m/s)')
                # self.label6 = tkinter.Label(self.bottom_left, text="%-10s" % 'Vw(rad/s)')
                print(110)
                time.sleep(0.2)
                self.main_window.mainloop()
    
        def updata_node(self, name, val):
            if name == "x":
                self.En1.delete(0, 10)
                self.En1.insert(0, str(val))  # delete
            elif name == "y":
                self.En2.delete(0, 10)
                self.En2.insert(0, str(val))  # delete
            elif name == "w":
                self.En3.delete(0, 10)
                self.En3.insert(0, str(val))  # delete
            elif name == "vx":
                self.En4.delete(0, 10)
                self.En4.insert(0, str(val))  # delete
            elif name == "vy":
                self.En5.delete(0, 10)
                self.En5.insert(0, str(val))  # delete
            elif name == "vw":
                self.En6.delete(0, 10)
                self.En6.insert(0, str(val))  # delete
            elif name == "cx":
                self.En7.delete(0, 10)
                self.En7.insert(0, str(val))  # delete
            elif name == "cy":
                self.En8.delete(0, 10)
                self.En8.insert(0, str(val))  # delete
            elif name == "cw":
                self.En9.delete(0, 10)
                self.En9.insert(0, str(val))  # delete
    
        def process_data(self):
            if self.jsondata['data']['country']:
                country = self.jsondata['data']['country']
            else:
                country = "NULL"
    
            if self.jsondata['data']['area']:
                area = self.jsondata['data']['area']
            else:
                area = "NULL"
    
            if self.jsondata['data']['region']:
                region = self.jsondata['data']['region']
            else:
                region = "NULL"
    
            if self.jsondata['data']['city']:
                city = self.jsondata['data']['city']
            else:
                city = "NULL"
    
            if self.jsondata['data']['county']:
                county = self.jsondata['data']['county']
            else:
                county = "NULL"
    
            if self.jsondata['data']['isp']:
                isp = self.jsondata['data']['isp']
            else:
                isp = "NULL"
            return (country, area, region, city, county, isp)
    
    
    m_win = MYIP()
    
    # if __name__ == '__main__':
    #
    #     m_win = MYIP()
    
    更多相关内容
  • C# chart实时数据显示简单示例工程文件

    千次下载 热门讨论 2014-08-04 19:06:28
    C# chart实时数据显示简单示例工程文件, 详细说明可以参看相关博文
  • 在Digitizer中,有x1、62616964757a686964616fe59b9ee7ad9431333363396432x2、y1、y2四个坐标,对应图中有4条线,点击Digitizer上面第4个按钮可显示x参考线,第5个按钮可显示y参考线,如图所示。将x1的Axi...

    展开全部

    Digitizer可以通过百度下载,点击Digitizer Tool弹出对话框

    e1aab9054c2b7b7e3005464d75c7b60c.png

    打开想要提起曲线所在图片

    0a2e96dd82d3665f3d7df9e4c820893b.png

    设置x和y坐标,在Digitizer中,有x1、62616964757a686964616fe59b9ee7ad9431333363396432x2、y1、y2四个坐标,对应图中有4条线,点击Digitizer上面第4个按钮可显示x参考线,第5个按钮可显示y参考线,如图所示。

    0d43d02545b63cee869dade3b56ae451.png

    将x1的Axis Value值设置为1,并将图上对应的垂线移动到横坐标1处,x2的Axis Value值设置为61,并将图上对应的垂线移动到横坐标61处 ,y1、y2按上面方法设置好便可进入下一步。

    b5e95aae599e978e159cf324bfb1f20a.png

    然后可将X Reference Line这条线移动到一个知道刻度的位置,如图移动到x=5的位置,看对应的Axis Value的值是否与刻度接近。

    e78f6fb0910108927a1ca28901973628.png

    选择数据,选择digitizer对话框Pick New Points,然后在线上双击便会在此确定一个点,后面的表格中会记录此点的数据。软件会根据这些点自动连成红色的线,如图将曲线抠了出来。

    7c44a4dde90d1c0e658ad41e048b9928.png

    第一条线确定后,点击Get Points上的Done,如果还需要确定第二条线,点击Digitizer对话框上的Start New Data,如上操作,如图抠出第二条曲线。

    1f74568d5ddb4b2367e496f304fefaf8.png

    进入DigiData表格或是执行如图工具栏中的Go To Data,便会打开数据工作表。

    f964a4de34e9c942d90d4aaee33841a5.png

    做线图,便能看出抠出的数据所作的Graph。

    展开全文
  • MATLAB数据显示格式设置

    千次阅读 多人点赞 2019-11-04 20:26:56
    我们可以在命令行窗口,通过使用format语句来设置数据显示格式,具体语法如下: 2.MATLAB设置 在MATLAB界面,点击“主页——预设——命令行窗口/变量”,根据个人习惯来设置数据格式。 如果这篇博文有帮助...

    1.命令行设置

    我们可以在命令行窗口,通过使用format语句来设置数据显示格式,具体语法如下:
    在这里插入图片描述
    在这里插入图片描述

    提示
    • 指定的格式仅应用于当前 MATLAB 会话。要在各会话之间保持格式,请在命令行窗口预设中选择数值格式或数值显示选项。
    • 您可以在 short 或 long 和表示形式类型(例如 format short E)之间插入一个空格。
    • MATLAB 始终为整数数据类型显示适合该数据类型的恰当位数。例如,MATLAB 使用 3 位数显示 int8 数据类型(例如 -128:127)。将输出格式设置为 short 或 long 不会影响整数类型的变量的显示。
    • 最多为 9 位数的整数值浮点数不以科学记数法显示。
    • 如果要显示具有较宽范围的值的矩阵,请考虑使用 shortG。请参阅大数据范围格式。

    2.MATLAB设置

    在MATLAB界面,点击“主页——预设——命令行窗口/变量”,然后根据个人习惯来设置数据格式。
    在这里插入图片描述
    在这里插入图片描述
    如果这篇博文有帮助到你,请不要吝惜你的赞(#^.^#)!

    展开全文
  • 资深工程师最常用的 Pandas 显示设置技巧!Pandas数据显示不全?快来了解这些设置技巧,自定义显示的行数、列数、列宽,使浮点列之间的小数位精度保持一致、禁用科学记数法

    💡 作者:韩信子@ShowMeAI
    📘 数据分析实战系列http://www.showmeai.tech/tutorials/40
    📘 本文地址http://www.showmeai.tech/article-detail/285
    📢 声明:版权所有,转载请联系平台与作者并注明出处
    📢 收藏ShowMeAI查看更多精彩内容

    📌 Pandas 数据显示的问题

    我们在应用 Python 进行数据分析挖掘和机器学习时,最常用的工具库就是 Pandas,它可以帮助我们快捷地进行数据处理和分析。

    对 Pandas 不熟悉的同学,一定要学习下这个宝藏工具库哦!ShowMeAI 给大家做了一个详尽的教程,可以在 📘 Python 数据分析教程 中查看,我们同时也制作了 📘 Pandas速查表,方便大家快速查找需要的功能。如果你喜欢跟着视频学习,那么推荐B站这个 📘 快速实战教程

    但在使用 Pandas 时,我们经常会遇到像下面这样一些问题,它很影响我们查看数据了解详情。

    🔔 长文本无法显示全

    对于非常长的字段可能显示不全,如下图中,URL 被缩短显示。

    🔔 科学计数法显示失去细节

    Pandas 默认使用『科学计数法』显示大浮点数,例如 1000000.5 显示为 1.000e+06 。对于数值较大的数字,就可能有如下的显示,这导致我们看不到具体数值。

    🔔 小数位精度不一致

    对于浮点型的字段列,Pandas 可能有不同的位精度。例如下图中,col_1 精确到小数点后一位,而 col_2 精确到小数点后三位。有时候精度的不一致可能会有信息的差异。

    在本篇内容中,ShowMeAI 将介绍如何使用 Pandas 自定义设置来解决诸如上述的问题。主要的设置包括下面内容:

    • 自定义要显示的行数
    • 自定义要显示的列数
    • 自定义列宽
    • 使浮点列之间的小数位精度保持一致
    • 禁用科学记数法
    • 其他用法

    注意:以上设置仅更改数据的显示呈现方式,实际并不会影响Dataframe存储的数据。

    📌 Pandas自定义显示设置

    💡 自定义显示行数

    打印大 Dataframe(行列数很多的数据)时,Pandas 默认显示前 5 行和后 5 行,如下图所示。

    我们可以通过设置显示选项 display.max_rows 来更改要显示的行数,比如我们将其设置为4。

    pd.set_option("display.max_row", 4)
    df
    

    我们可以使用重置选项 pd.reset_option("display.max_rows") 恢复默认行数显示设置。

    💡 自定义显示列数

    同样的道理,我们可以通过设置 display.max_columns 自定义输出 Dataframe 时要显示的列数。

    pd.set_option("display.max_columns", 6)
    df
    

    我们甚至可以设置 pd.set_option('display.max_columns',`` ``None) 来显示所有列(但是大家需要注意一下内存使用,这个操作可能让 Jupyter Notebook 一下占用特别多资源)。

    我们同样可以使用 pd.reset_option("display.max_columns") 重置返回到默认设置。

    💡 自定义列宽

    在下图中,我们看不到前两行的全文,因为它们的字符太长(长度超过了 50)。

    我们把设置 display.max_colwidth调整到 70,就可以看到全文了,如下图所示。

    pd.set_option("display.max_colwidth", 70)
    df
    

    对这个设置重置的操作依旧是pd.reset_option("display.max_colwidth")

    💡 设置字段小数位精度一致

    前面提到的一个例子中,col_1col_2 的小数位精度不一致:

    我们可以通过设置 display.float_format"{:.2f}".format 使格式一致,如下图所示。

    该选项只会影响浮点列,而不影响整数列。

    pd.set_option("display.float_format", "{:.2f}".format)
    df
    

    对这个设置重置的操作是 pd.reset_option("display.float_format")

    💡 禁用科学计数法

    Pandas 默认以科学计数法显示较大的浮点值。

    通过设置 display.float_format"{:,.2f}".format,我们可以为千位添加分隔符。

    pd.set_option("display.float_format", "{:,.2f}".format)
    df
    

    我们甚至可以添加货币符号在数值前面,比如我们把 display.float_format 设置为 "$ {:,.2f}".format,得到如下结果:

    pd.set_option("display.float_format", "$ {:,.2f}".format)
    df
    

    💡 其他设置

    上面列到的是一些最常用的设置,如果我们记不住这些设置名称,或者我们想了解全部可以调整的显示设置,可以怎么办呢?实际上大家可以借助pd.describe_option()获得所有可用显示设置的列表。

    针针对某个特定的显示设置,可以在 pd.describe_option()中传入想调整的显示设置名称来获取使用细节,例如我们运行pd.describe_option("max_rows")将打印描述 display.max_rows使用细节,如下图所示。

    pd.describe_option("max_rows")
    

    参考资料

    展开全文
  • Vue如何将数据显示在页面中

    千次阅读 2020-07-18 23:51:08
    如何将data的数据显示在页面中 1.文本插值:{{}} <div id="root">{{msg}}</div> <script> new Vue({ el:"#root", data:{ msg:'hello world' }, }) </script> 渲染...
  • tcpdump详细数据显示方法

    千次阅读 2020-02-19 20:13:44
    抓取UDP某一个端口的数据显示详细信息 tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 抓取发到...
  • origin 设置数据显示位数

    千次阅读 2019-04-17 17:26:29
    如图,让小数点后面显示3为数字。 双击坐标,打开属性设置,写入(($(x,.3), $(y,.3)))即可
  • vue后端含有标签数据显示在前端

    千次阅读 2019-05-23 18:57:17
    要想在前端显示后端含有标签的数据,则需要使用v-html 后端数据:https://www.easy-mock.com/mock/5ce57090f2fc446b5d8ffe18/blog/html 前端显示: 完整代码如下:(主要看加粗的代码) < template> < ...
  • echarts Y轴数据显示不全问题

    万次阅读 2020-09-23 15:06:19
    很奇怪,Y轴只显示了部分节点。没有显示全。 原图 解决方案 在yAxis上加上下面的配置就能解决: yAxis: { type: 'category', axisLabel :{ interval:0 }, data: ['学生一', '学生二', '学生三', '学生四', '...
  • 前端获取JSON数据显示在页面上

    万次阅读 多人点赞 2019-06-04 15:11:34
    从后台获取数据显示在界面上是前端开发所必须要掌握的一项基本技能,简单记录一下从本地模拟数据的JSON文件中获取数据显示在界面上。 1.先创建本地json文件,命名为data.json,json文件存储数据格式如下: { ...
  • 正确代码:(注:要想查看后台数据可以点击 https://www.easy-mock.com/mock/5ce57090f2fc446b5d8ffe18/blog/blogdata这个链接) < template> < div class=“show-examples”> < el-input p...
  • 前端代码: 后端代码: Controller Service DAO
  • ssm框架下,怎么将从数据库查询到的数据显示在table表格中??
  • 在使用matplotlib显示数据的过程中,我在显示的时候一直达不到满意的效果,经过很多的百度和查询,先整理了这些知识点,留备以后再继续扩充。 plt.rcParams[‘font.sans-serif’] = [‘SimHei’] # 用来正常显示...
  • 参考:...我后台的数据格式是这样的 我在我的方法中是这样写的 this.$http({ url: this.$http.adornUrl('后台返回连接地址'), method: 'get', params: this...
  • ArcMap栅格数据显示调整

    千次阅读 2018-08-21 14:55:08
    当我们用ArcMap加载值类型的栅格数据,比如tif格式的高程数据时,默认的加载方式有时会让人看不清楚每个栅格点值的区别,在平原中这种现象尤其明显: 例如上图所示为我国东南丘陵地区一处高程tif默认加载显示,...
  • 很多小伙伴在平时的绘图过程中可能也遇到过这样的情况,当我们在对CAD中绘制的图形进行测量的使用,测量所得的数值却无法在操作界中显示出来,接下来和大家总结一下可能会出现这种情况的原因! 原因一:线段线性标注...
  • 借助平台聚合数据API接口进行网络请求操作,获取全国天气预报数据。 首先,需要在聚合数据进行注册,登录操作,然后找到全国天气预报,在API文当中可以获取接口的地址 在微信小程序开发工具中,调用wx.request...
  • 1.skywalking dashboard 13:57开始突然没有数据 显示如下 此时es状态: 观看skywalking 中collector日志: 其中出现大量的错误日志(本次服务于11点30重启后就一直存在) 观看skywalking 中agent的日志: 出现...
  • 问题描述 大概是这样 显示2个不同zabbix源的数据,AC这个源数据多一些.显示6小时可以显示,单独显示今天或者昨天 前天数据都可以,但是显示last 2 days 就会报错Internal Server Error,而且只有可用内存会出现这个问题 ...
  • ECharts手动设置数据显示、隐藏

    万次阅读 2017-10-11 08:56:49
    Echarts自带的legend图例能够自动控制数据的显示隐藏,如果开发人员自定义图例之后,可以通过两种方式实现数据显示隐藏: 1、通过点击图例,控制series数据(太麻烦) 2、通过点击图例,控制option.legend....
  •  问题一:某xxxx.sql文件,里面都是insert语句,并且文本编辑器打开文件查看,里面待插入的中文数据显示正常,但是通过命令行,使用“@xxxx.sql”导入数据库后,发现数据库中的中文数据都是“?????”这种形式;  ...
  • 在上下滑动列表的时候,偶尔会出现一个item 不显示数据的情况,但是你滑动下去过会儿又滑回来就有可能显示出来了 请问这是什么原因?
  • 在vuejs的页面请求后台数据返回[object Object],怎么解决? 在vuejs的页面请求: this.$http.get(url).then((resp) =>{ console.log(resp) //得到的结果为[object Object],不可读 },(resp) =>{ //错误...
  • 项目需求如上图所示,要根据后台返回来的数据是否为天猫的数据,如果是天猫,返回来的值是1,然后页面就显示天猫的标志,如果返回来的值不是1,页面是显示淘的标志,这里介绍一下三目运算的实现方式。话不多少,直接...
  • 首先,完成jsp连接数据库并将数据库数据显示在浏览器页面有三个步骤 一、导包 二、连接数据库 三、显示数据 一、导包 最为稳妥的导包方式为先将需要导入的jar包(此处应导入mysql-connector-java-5.1.42-bin.jar...
  • echarts如何让坐标轴的数据显示完全

    千次阅读 2017-03-19 16:36:39
    有时候我们会碰到坐标轴的数据由于长度关系,会显示不全,下面就让我们看看如何将坐标轴的数据显示完成,针对echarts。 yAxis: [ { type: 'category', axisLabel:{  interval:0,  
  • Echarts中数据显示实现formatter

    万次阅读 2018-09-01 14:44:09
    主要使用到Echarts框架来进行数据可视化的展示,在完成需求的过程中碰到最多的问题就是数据展示时的样式需求,如鼠标放到图表上显示的内容、数据展示时的格式问题,目前为止主要是碰到了三种类型的数据显示: ...
  • 在使用jmeter的过程中,返回了大量数据,在统计数据量的时候发现与数据库差距较大,遂检查返回结果。 拉倒最后发现,MMP没有加载完!!!! 这里给出解决办法: 1:在jmeter安装文件下找到文件:../bin/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,569,245
精华内容 1,827,698
关键字:

数据显示

友情链接: Delaunay_WinForm.rar