Подтвердить что ты не робот

Gnuplot против Matplotlib

Я начал рисовать проект Tomcat с помощью gnuplot-py, в частности, сопоставление конкретных запросов с распределением памяти и сбором мусора. Что это коллективная мудрость по gnuplot-py vs Matplotlib для графического отображения Python. Есть ли лучшие библиотеки графики, о которых я не слышал?

Мои общие соображения:

  • В то время как gnuplot имеет большие объемы документации, gnuplot-py этого не делает. Насколько хорошо сообщество документации для Matplotlib?
  • Есть ли вещи, которые gnuplot может сделать, но gnuplot-py не может?
  • Есть ли у Matplotlib лучшая поддержка Python?
  • Есть ли большие остановки остановки в обоих? Раздражали?
  • В настоящее время gnuplot отображает 100 000 точек, я планирую масштабировать его до миллионов. Должны ли я ожидать проблем? Насколько хорошо это делает Matplotlib?
  • Простота использования, время обработки для gnuplot против Matplotlib?
  • Насколько легко было бы переносить существующий код gnuplot-py на Matplotlib?

Как вы подходите к этой задаче?

4b9b3361

Ответ 1

  • Вы можете самостоятельно проверить matplotlib documentation. Я нахожу это достаточно полным.
  • У меня очень мало опыта с gnuplot-py, поэтому я не могу сказать, может ли он делать все gnuplot.
  • Matplotlib написан и разработан специально для Python, поэтому он очень хорошо подходит с идиомами Python и т.д.
  • Matplotlib - зрелый проект. NASA использует его для некоторых вещей.
  • Я заработал десятки миллионов очков в Matplotlib, и он все еще выглядел красивым и быстро реагировал.
  • Помимо объектно-ориентированного способа использования Matplotlib - интерфейс pylab, который делает проецирование так же просто, как и в MATLAB - это очень просто.
  • Что касается переноса из gnuplot-py в matplotlib, я понятия не имею.

Ответ 2

Matplotlib = простота использования, Gnuplot = производительность

Я знаю, что эта почта старая и ответила, но я проходил мимо и хотел поставить мои два цента. Вот мой вывод: как сказано выше, если у вас есть не очень большой набор данных, вы должны использовать Matplotlib. Это проще и выглядит лучше. Однако, если вам нужна производительность, я бы рекомендовал использовать Gnuplot. Следующий график представляет собой требуемое время для построения и сохранения случайных диаграмм рассеяния и его пояснения.

Gnuplot VS Matplotlib

Кроме того, как указано в комментариях, вы можете получить эквивалентное качество сюжетов. Но вам придется попотеть, чтобы сделать это с помощью Gnuplot.

Ответ 3

matplotlib имеет довольно хорошую документацию и, кажется, довольно стабилен. Графики, которые он производит, прекрасны - "качество публикации" наверняка. Из-за хорошей документации и объема кода примера, доступного в Интернете, его легко изучить и использовать, и я не думаю, что у вас будет много проблем с переводом кода gnuplot на него. В конце концов, matplotlib используется учеными для построения данных и подготовки отчетов, поэтому он включает все, что нужно.

Одно заметное преимущество matplotlib заключается в том, что вы можете интегрировать его с графическими интерфейсами Python (wxPython и PyQt, по крайней мере) и создать графическое приложение с хорошими графиками.

Ответ 4

После использования GNUplot (с моей собственной оболочкой Python) в течение длительного времени (и действительно не нравится 80-х-вывод), я только начал смотреть на matplotlib. Я должен сказать, что мне это очень нравится, результат выглядит очень красиво, а документы высокого качества и обширные (хотя это также касается GNUplot). Единственное, что я потратил на поиск в документах matplotlib, - это то, как писать в файл изображения, а не на экран! К счастью, эта страница объясняет это довольно хорошо: http://www.dalkescientific.com/writings/diary/archive/2005/04/23/matplotlib_without_gui.html

Ответ 5

Я играл с обоими, и мне нравится Matplotlib намного лучше с точки зрения интеграции, вариантов и качества графиков/графиков Python.

Ответ 6

То, что Gnuplot может сделать Gnuplot-Py, тоже может сделать. Потому что Gnuplot можно управлять с помощью pipe (pgnuplot). Gnuplot-Py - всего лишь тонкий слой. Поэтому вам не нужно беспокоиться об этом.

Почему я предпочитаю gnuplot, может быть, много выходных форматов (PDF, PS и LaTex), что очень полезно в документах, а выход по умолчанию выглядит более научным:)

Ответ 7

О производительности и построении большого количества точек: я сравнил это для диаграммы рассеяния 500 000 точек, загруженных из текстового файла и сохраненных в png, используя gnuplot * и matplotlib.

500.000 points scatterplot
gnuplot:      5.171 s
matplotlib: 230.693 s

Я запускал его только один раз, и результаты не выглядели одинаково, но я думаю, что идея понятна: gnuplot выигрывает при производительности.

* Я использовал gnuplot непосредственно, потому что демон gnuplotpy не работает для меня. Matplotlib выигрывает при интеграции Python.