
рдореЗрд░реЗ рдкрд╛рд╕ рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред рд▓рдЧрднрдЧ 2000 рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рдЪрдХреНрд░ рдерд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХрд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рдерд╛ред
рдФрд░ рдореИрдВрдиреЗ рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрддреБрд░рд╛рдИ рд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдкреБрдирд░рд╛рд╡реГрддрд┐ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХреБрдЫ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЧреНрд░рд╛рдл рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрдиреБрд╕реВрдЪреА рдФрд░ рдЕрджреНрдпрддрдиред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛
рдмреЛрдХреЗрд╣ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд░реЗрдЦрд╛рдВрдХрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЛрдХреЗрд╣ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдХреИрд╕реЗ - рдЕрдм рдореИрдВ рдмрддрд╛рдКрдВрдЧрд╛ред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░реЗрдВ: рдмреЙрдЪ рд╕реЗ рдмреЙрдХреНрд╕ рд╕реЗ рд╣реА рд╕рд░реНрд╡реЛрдЪ рдирд┐рдХрд▓рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд┐рдк рдЗрдВрд╕реНрдЯреЙрд▓ рдмреЛрдХреЗрд╣ рдХреЗ рдмрд╛рдж, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдмрд╕ рдмреЛрдХреЗрд╣ рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдФрд░ рдлрд┐рд░ рдЪрд╛рд░реНрдЯ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
- рдмрд╛рдХреА рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ),
- рддрд╛рдХрд┐ рдЧреНрд░рд╛рдл рд╡рд┐рдВрдбреЛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ)
- рдФрд░ рдХрд┐рд╕реА рднреА рд╕рдордп рд╣рдо рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдареАрдХ рд╣рдорд╛рд░реА рдкрд╛рдпрдерди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ!
рдпрд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
import time import sys from bokeh.plotting import figure from bokeh.client import pull_session from bokeh.models import ColumnDataSource
рдкрд╣рд▓реЗ, рдореБрдЭреЗ рднреА рдРрд╕рд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдлреИрд╕рд▓реЗ рдЗрд╕реЗ рд╣рд▓реНрдХреЗ рдврдВрдЧ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЗ, рдЗрддрдиреЗ рдЕрдЪреНрдЫреЗ рдирд╣реАрдВ рдереЗред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ ...
рд╕рд╛рд╡рдзрд╛рдиреА, рдорд╕реНрддрд┐рд╖реНрдХ рдЧрд┐рдЯреНрдЯреА!рдЖрдк рдкреНрд░рддреНрдпреЗрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдкрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ plt.draw () рдХреЛ рдЦреАрдВрдЪрдХрд░ рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЛрдб рдореЗрдВ matplotlib рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдЪ рд╣реИ, рдиреЙрди-рдмреНрд▓реЙрдХрд┐рдВрдЧ рдореЛрдб рдореЗрдВ, matplotlib рдореЗрдВ GUI рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЕрдкрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рд╡рд┐рдВрдбреЛ рджреВрд╕рд░реА рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдХрдо рд╕реЗ рдХрдо рдпрд╛ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд╕реЛ-рдмреИрд╕рд╛рдЦреА, рд▓реЗрдХрд┐рди рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд░реЗрдЧрд╛ред
рдиреАрдЧреНрд░реЛ рдореЗрдВ рдПрдХ рд╣реА рдореЗрдЯрдкреНрд▓реЛрдЯрд▓рд┐рдм рдХреЗ рдЪрд╛рд░реНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╕реНрд╡реАрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рдбрдВрдк рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рднрдпрдВрдХрд░ рдмреИрд╕рд╛рдЦреА, рд▓реЗрдХрд┐рди рдордЫрд▓реА рдХреА рдХрдореА рдкрд░ рдПрдХ рд╕рд╡рд╛рд░реАред рдпрд╛ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд░рд┐рдореЛрдЯ рдорд╢реАрди рдкрд░ред
рдЖрдк рдЗрд╕реЗ рдПрдХ рд╢рд╛рдВрдд рддрд░реАрдХреЗ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: PyQt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдПрдХ QObject рдореЗрдВ рдЧрдгрдирд╛ рдХреЛрдб рдХреЛ рд▓рдкреЗрдЯреЗрдВ, рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдзрдХреНрдХрд╛ рджреЗрдВ, Matplotlib рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЛ QWidget рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ (рдпрд╛ Qt рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗ рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ PyQtGraph рд╕реЗ рдЧреНрд░рд╛рдлрд╝рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ), рдЧрдгрд┐рдд рдХреЛ рдПрдХ рд╕реНрд▓реЙрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред , рдФрд░ рдЦреБрд╢реА рд╣реЛрдЧреАред рд╕рдЪ рд╣реИ, рдпрд╣ рдПрдХ рддреНрд╡рд░рд┐рдд рдбрд┐рдмрдЧрд┐рдВрдЧ рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд╣реИ, рдФрд░ рдХреНрдпреВрдЯреА рдХреЛ рдкрдврд╝рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрдИ рдмрд╛рд░ рдХрд┐рдпрд╛ред
рдЖрдк рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд░реЗрдЦрд╛рдВрдХрди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, aiohttp + PyQt + PyQtGraph рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ рдореБрдЦреНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ REST API рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦрдЯрдЦрдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рддреНрд╡рд░рд┐рдд-рдлрд┐рдХреНрд╕-рдлреЙрд░-рдбреАрдмрдЧрд┐рдВрдЧ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЖрдк рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ (рдЕрднреА рдлреИрд╢рди рдореЗрдВ рдХреНрдпрд╛ рд╣реИ?) рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЧреНрд░рд╛рдлрди рдХреЛ рдлреИрд╢рди рдореЗрдВ рдЬрд╛рдиреЗ рджреЗрдВред рд╕рдЪ рд╣реИ, рдЖрдкрдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдЧреНрд░рд╛рдлрди рджреЛрдиреЛрдВ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░реЗрдВред рд╢рд╛рдпрдж, рдпрд╣ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рд╕рдВрднрд╡ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣рдЬрд╛рд░ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд▓рд┐рдП рджреЛ рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдмрдВрджреВрдХ рдЧреМрд░реИрдпрд╛ рдХреА рддрд░рд╣ рд╣реИ ...
рдпрд╛ рдЖрдк рдкреНрд▓реЙрдЯрд▓реА рдХреЛ рд╕рдордЭ рд╕рдХрддреЗ рд╣реИрдВред рдбреАрдПрд╢, рдЧрдгрд┐рдд рдХреЛ рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рд░рдЦреЗрдВ, рдЗрд╕реЗ рдбреИрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд▓рдкреЗрдЯреЗрдВ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрдЪрд░реЗ рдХрд╛ рдирд░рдХ рдХрд░реЗрдВред рдпрд╣ рдореБрдЭреЗ рдорд╣рд╛рд░рдд рд╣рд╛рд╕рд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдЧрд╛ред
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╕рдлрд▓ рдбрд┐рдмрдЧрд┐рдВрдЧ!