Как использовать line_series в DearPyGui для достижения эффектов динамического построения графиковPython

Программы на Python
Ответить
Anonymous
 Как использовать line_series в DearPyGui для достижения эффектов динамического построения графиков

Сообщение Anonymous »

Точно так же, как эта демонстрация:
Изображение

Я хочу использовать line_series вместо simple_plot для достижения динамических эффектов построения графиков. Какое решение является подходящим?
Если я использую simple_plot, это работает; но это не работает с line_series.
import math
import time

import dearpygui.dearpygui as dpg

x_data = []
y_data = []
max_points = 100

start_time = time.time()
for i in range(50):
t = start_time + i * 0.1
x_data.append(t)
y_data.append(math.sin(t) + 0.5 * math.sin(2 * t))

def update_plot():
global x_data, y_data

current_time = time.time()
new_y = math.sin(current_time) + 0.5 * math.sin(2 * current_time)

# 添加新数据
x_data.append(current_time)
y_data.append(new_y)

# 保持数据长度不超过最大值
if len(x_data) > max_points:
x_data = x_data[-max_points:]
y_data = y_data[-max_points:]

# 更新绘图数据
dpg.set_value("line_series", [x_data, y_data])

# 可选:自动调整x轴范围以显示最新数据
if len(x_data) > 1:
dpg.set_axis_limits("x_axis", x_data[0], x_data[-1])

dpg.create_context()

with dpg.window(label="dw", width=800, height=600):
with dpg.plot(label="real data", height=500, width=700):
dpg.add_plot_legend()

# 创建坐标轴
x_axis = dpg.add_plot_axis(dpg.mvXAxis, label="x", tag="x_axis")
y_axis = dpg.add_plot_axis(dpg.mvYAxis, label="y", tag="y_axis")

# 创建线系列
dpg.add_line_series(
x_data, y_data, label="data", parent=y_axis, tag="line_series"
)

dpg.create_viewport(title="fuck", width=800, height=600)
dpg.setup_dearpygui()
dpg.show_viewport()

# 设置定时器回调
while dpg.is_dearpygui_running():
update_plot()
dpg.render_dearpygui_frame()
time.sleep(0.05) # 控制更新频率

dpg.destroy_context()


Подробнее здесь: https://stackoverflow.com/questions/798 ... ng-effects
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»