#python #matplotlib
#python #matplotlib
Вопрос:
Я пытаюсь создать live_graph с помощью matplotlib. У меня две проблемы: во-первых, у меня ошибка: MatplotlibDeprecationWarning: добавление осей с использованием тех же аргументов, что и предыдущие оси, в настоящее время повторно использует более ранний экземпляр. В будущей версии всегда будет создаваться и возвращаться новый экземпляр. Между тем, это предупреждение можно подавить и обеспечить будущее поведение, передав уникальную метку каждому экземпляру axes. ax = рис.add_subplot(1, len(my_entry), i 1) Во-вторых: график отображается с неожиданной строкой. Вот данные в Working_Out_data1.txt файл, который вы видите в кодах
PART0, 1, 1.5
PART1, 1, 2.5
PART2, 1, 3.5
PART3, 1, 4.5
PART4, 1, 5.5
PART0, 2, 1.6
PART1, 2, 2.6
PART2, 2, 3.6
PART3, 2, 4.6
PART4, 2, 5.6
PART0, 3, 1.3
PART1, 3, 2.3
PART2, 3, 3.3
PART3, 3, 4.3
PART4, 3, 5.3
PART0, 4, 2.0
PART1, 4, 3.0
PART2, 4, 4.0
PART3, 4, 5.0
PART4, 4, 6.0
PART0, 5, 1.0
PART1, 5, 2.0
PART2, 5, 3.0
PART3, 5, 4.0
PART4, 5, 5.0
Вот мой код:
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig = plt.figure()
var_list = ['PART0', 'PART1', 'PART2', 'PART3', 'PART4']
my_entry = []
for _ in range(len(var_list)):
my_entry.append([])
def get_data(data_string, item_loc):
temp = data_string.split(item_loc)
if len(temp) >= 2:
return temp[1]
def animate(i):
lines = open("Working_Out_data1.txt", "r").read()
line1 = lines.split('n')
line1.pop(-1)
# print(line1)
for line_graph in line1:
for var in var_list:
if var in line_graph:
my_entry[var_list.index(var)].append(get_data(line_graph, var ', '))
# print(my_entry)
# input(">")
for i in range(len(my_entry)):
ax = fig.add_subplot(1, len(my_entry), i 1)
ax.clear()
x = []
y = []
for item in my_entry[i]:
values = item.split(', ')
x.append(int(values[0]))
y.append(float(values[1]))
ax.plot(x, y, color='green', marker='o', markersize= 8)
my_axes.append(ax)
ani = animation.FuncAnimation(fig, animate, interval=1000)
plt.show()
Комментарии:
1. Вы изучали сюжетные анимации ?
2. Я сделал, но как исправить проблему?