Как я могу использовать gnuplot для отображения данных в непривлекательном формате? - PullRequest
1 голос
/ 29 апреля 2010

Мне нужно отобразить некоторые данные, которые не совсем в наиболее удобном формате, большинство примеров или использования помещают вещи в хороший столбец / таблицу, которую очень легко анализировать и графически отображать. Однако у меня есть следующий формат (и я немного застрял в том, как справиться с этим):

DATE1 label_1 xx yy
DATE1 label_2 xx yy
DATE1 label_3 xx yy

DATE2 label_2 xx yy
DATE2 label_3 xx yy

DATE3 label_1 xx yy
DATE3 label_2 xx yy
DATE3 label_3 xx yy

DATE4 label_2 xx yy
DATE4 label_3 xx yy
...continues

* Я добавил дополнительное расстояние между датами для удобства чтения.

** Примечание: в DATE2 отсутствует DATE4 label_1, т. Е. Файл данных может иметь метки, которые приходят и уходят и должны представлять разрыв на графике.

Я бы хотел, чтобы ось X использовала DATEX для меток, а затем создала две строки для каждой метки (xx и yy соответственно).

Есть ли у кого-нибудь предложения о том, как лучше решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 29 апреля 2010

Лучшей вашей ставкой может быть просто Gunplot.py (http://gnuplot -py.sourceforge.net / ) для создания сценария, который будет выполнять необходимые вам задачи Затем вы можете построить сюжет так же, как в gnuplot.

    g = Gnuplot.Gnuplot()
    g('set datafile separator " "')
    plot = "plot "
    plot += "'%s' using 1:3 title '($2)' with lines" % (filename))
    plot += ", '%s' using 1:4 title '($2)' with lines" % (filename))
    g(plot)

Если вы еще не заглядывали в gnuplot.py, я бы обязательно посмотрел его. Там также есть список рассылки, который может оказать более конкретную помощь.

2 голосов
/ 29 апреля 2010

Я не совсем понимаю, какой график вы хотите создать. Точки определяются двумя координатами, и я могу представить, как можно сравнить несколько наборов данных для сравнения, чтобы учесть три параметра. Где четвертый вписывается? Хотите кластерную гистограмму?

В любом случае, если формат данных, который я получаю, не подходит для gnuplot, я обычно выполняю некоторую предварительную обработку для создания файла данных для gnuplot (используя Common Lisp или Perl).

Обновление: После вашего уточняющего комментария я бы преобразовал файл в этот формат:

# DATE, label-1-x, label-1-y, label-2-x, label-2-y, label-3-x, label-3-y
     1,        xx,        yy,        xx,        yy,        xx,        yy
     .
     .
     .
...