Значения графика на растущей оси X - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю на python, где я отслеживаю потоки задержек между двумя хостами.Моя программа создает файл, содержащий две строки информации в столбце 1 с различным интервалом времени, когда я получил значение в столбце 2, например:

2.0     -0.430053710938         
4.0     -0.0391845703125
1.0      5.830078125
4.0      5.07067871094

Прошло 2 секунды, прежде чем я получил значение -0,430053710938, 4через несколько секунд я получил -0.0391845703125, через секунду - значение 5.830078125 и т. д.

Как я могу построить это так, чтобы это имело смысл ?, Я попытался взглянуть на gnuplot, но он создает column1 как оси x, которыепортит все, так как мой 3-й значение как 1,0.

1 Ответ

0 голосов
/ 07 декабря 2018

То, что вам нужно, это накопленная сумма ( np.cumsum ) времени (первый столбец) после чтения из файла.Ниже приведен полный рабочий ответ.Я читаю данные из файла, а затем преобразую список времени в массив, а затем беру накопленную сумму за время.

import matplotlib.pyplot as plt
import numpy as np

with open('data.dat',"r") as file:
    lines = file.readlines()

x = np.cumsum(np.array([float(row.split()[0]) for row in lines]))
y = [float(row.split()[1]) for row in lines]

plt.plot(x, y, '-kx')
plt.show()

Альтернативный способ загрузки данных

data = np.loadtxt('data.dat', usecols=(0,1))
x = np.cumsum(data[:,0])
y = data[:,1]
plt.plot(x, y, '-kx')
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...