Я работаю над проектом для своей компании, и мне нужно интегрировать несколько графиков разного типа и средней сложности в C# в процессе изучения фондовых рынков. Я нашел эту бесплатную библиотеку в Интернете, ZedGraph. Если вы сталкивались с ним, вы рекомендуете его использовать? И насколько хорошо он поддерживается?
Можно ли рекомендовать библиотеку диаграмм ZedGraph для .NET?
Ответы (7)
Я могу порекомендовать ZedGraph. Я использовал его с большим успехом в течение нескольких лет в MSQuant для большинства графиков: отображение масс-спектра, ошибка повторной калибровки графики, графики пиков ЖХ, профили количественного анализа и другие.
Вот несколько скриншотов из MSQuant, где использовался ZedGraph:
- График рассеяния с линией тренда
- График X-Y с показанными фактическими точками данных, точками данных соединения линий
- Закрепленный график с наложенной аннотацией (фактически
TextBox
es) - Несколько графиков в том же окне, типы как в 2. и 3. (два графики в нижней половине)
- Подробнее о типе 2.
- Коллаж, тип 2. и код в Visual Studio
Исходный код, стоящий за первым графиком, можно найти в Исходный код для MSQuant: frmRedicationVisualisation.vb, MSQuant/msquant/src/GUI/forms/frmRedicationVisualisation.vb..
В отличие от многих других графических библиотек, ZedGraph также можно использовать для научных/математических графиков/диаграмм (например, точечных диаграмм), а не только для графиков/диаграмм бизнес-типа. Приложения фондового рынка также могут нуждаться в распределении графиков.
В ZedGraph имеется встроенная поддержка увеличения (бесконечного) и уменьшения масштаба, панорамирования (перетаскивание, удерживая нажатой клавишу Ctrl), сохранения графика в файл или копирования его в буфер обмена.
Есть одна вещь, которой мне не хватает в ZedGraph: возможность для пользователя выбирать элементы на графике, чтобы выполнить какое-либо действие над этими выбранными элементами (например, вычислить какое-то число, принять их как проверенные или пометить их как выбросы для прикладная программа).
Не пугайтесь состояния разработки ZedGraph. ZedGraph является зрелым, имеет очень высокое качество и может использоваться как есть. Предполагается, что за его дальнейшим развитием должна стоять новая команда.
ZedGraph больше не поддерживается первоначальными разработчиками. Тем не менее, вы можете найти его в составе других проектов, где были сделаны обновления.
Например, на это обсуждение в списке обсуждений проекта ZedGraph. :
Поэтому я сильно оптимизировал ZedGraph для всех кривых и объектов. По сути, я оптимизировал то, как он использует GDI, и специально сделал так, чтобы отображались только те объекты, которые поместятся на диаграмме.
Таким образом, теперь он прокручивается и масштабируется чрезвычайно эффективно, даже если на графике много миллионов объектов. Кроме того, он почти не использует ЦП, когда работает в режиме реального времени, поскольку более медленные скорости для отслеживания финансовых графиков.
Я также исправил несколько дефектов.
Вы можете найти ответвление репозитория с изменениями здесь.
Я настоятельно рекомендую Microsoft Chart Controls For .NET Framework 3.5 поверх ZedGraph.
Вы имеете в виду Zedgraph, а не Zgraph? Домашняя страница Zedgraph находится здесь и описана в Статья CodeProject здесь. Если вы говорите о Zedgraph, я могу порекомендовать его, у меня относительно небольшой опыт в C #, но довольно большой в визуализации данных. Мне было легко запустить Zedgraph и создавать красивые диаграммы. Zedgraph очень хорош для 2D-графиков, я все еще ищу эквивалент для 3D-графиков.
Я ненавижу быть убийцей, но я бы не рекомендовал ZedGraph. Я работал с ним пару лет назад и заметил, что поддержка была предоставлена одним энтузиастом, который, казалось, злоупотреблял всеми, кто хотел его бесплатное программное обеспечение без какой-либо компенсации или взносов. Это проклятие, с которым столкнулись многие авторы FOSS. Не похоже, чтобы программное обеспечение обновлялось больше года, а справочный форум полон вопросов без ответов. Похоже, автор потерял интерес и загулял. Если вы используете ZedGraph, делайте это, потому что вы хотите поддерживать базовый код и потому что вы хотите внести свой вклад в сообщество пользователей/разработчиков. Если вы не заинтересованы в содействии и не можете поддерживать его для себя, будьте готовы к вещам, которые не сработают и просто никогда не сработают. Предприимчивая компания может спонсировать разработку программного обеспечения и предлагать платную поддержку, но вам нужно решить для себя, достаточно ли это хорошо для этого и существует ли реальная модель получения дохода.
Я надеюсь, что это поможет кому-то.
Хотя разработка, похоже, застопорилась, отображение динамических данных WPF выглядело многообещающе.
ZedGraph не поддерживает 3D-графики, такие как Surface Chart: Implied Vol Surface