2011-07-10 4 views
7

Я ищу виджет или элемент управления для построения временного ряда данных. В основном график (x, y), где x и y - векторы Nx1. Я смотрю, но не нашел много, и любые предложения были бы замечательными! Благодарю.Рекомендации по составлению графика (диаграммы)?

+5

В мире Windows, это называется 'контроль', а не 'виджеты'. –

+0

Есть ли что-то не так с TChart, который поставляется с C++ Builder? –

+0

TChart, из коробки, с TFastLineSeries выполнит свою работу –

ответ

9

Использование TeeChart, поставляемое с Delphi. Хорошо подходит для временных рядов, а также графиков реального времени.

+1

И если вы хотите сгладить рисунок диаграммы на экране, вы можете сохранить его в файле EMF, а затем визуализировать его с помощью нашей [Open Source GDI + обертки] (http://blog.synopse.info/post/2010/ 04/02/Antialiased-проборной из-TMetaFile). Я использовал это в нескольких проектах (через наш механизм отчетов), и он работал хорошо. Хороший старый TChart выглядит намного лучше, используя рисунок GDI +, по крайней мере, для стороннего клиента. –

8

Я предпочитаю TJvChart из Jedi VCL library, но затем я написал TJvChart или большую часть его в любом случае. Причина, по которой я рекомендую, заключается в том, что она бесплатна, но она имеет некоторые ограничения, в том числе отсутствие надлежащих возможностей масштабирования и масштабирования.

Я не люблю использовать какой-либо компонент в своих приложениях, который не включает исходный код, и, как правило, предостерегает от использования закрытого источника в любом серьезном проекте, поэтому планируйте купить исходный код TeeChart, если вам нужно будет используйте компонент. Однако я не против Tee-Chart; Если вы решите использовать его в коммерческом проекте, идите вперед, это тоже здорово. Просто имейте в виду, что на самом деле 100% стоит покупать источник за все, что вы действительно хотите использовать серьезным образом.

Быстрый старт: 1. Загрузите и установите JVCL. 2. Откройте прилагаемые демонстрации JvChart.

Учебник стиля Stackoverflow: 1. Drop TJvChart на форме. 2. написать этот код:

JvChart1.Options.PenCount := 1; 
    JvChart1.Data.ValueCount := 3; 
    // set values for [penIndex=0, valueIndex=0..2 ] 
    JvChart1.Data.Value[0, 1] := 1; 
    JvChart1.Data.Value[0, 2] := 3; 
    JvChart1.Data.Value[0, 3] := 5; 
    JvChart1.PlotGraph; 

enter image description here

+3

TeeChart поставляется с исходным кодом. Вам просто нужно заплатить за это. Любой серьезный проект IMHO должен использовать хорошо поддерживаемые компоненты, коммерческие или нет (и получение исходного кода для долгосрочного проекта всегда желательно). В противном случае ваш аргумент можно использовать для использования FPC/Lazarus вместо Delphi, потому что Delphi является закрытым исходным приложением, которое не поставляется с полным исходным кодом. –

+0

Что лучше работает с большими наборами данных? –

+0

@ Давид, я должен сказать, что у меня нет опыта работы с JvChart. Как вы упомянули, у TeeChart есть TFastLineSeries. Настройка DrawAllPoints на False окажет большое влияние на скорость рисования. Также можно определить все серии вне TeeChart, что уменьшает площадь памяти для больших серий. Дополнительную информацию см. В [www.teechart.net/reference/articles/index.php]. Это трудно превзойти в производительности для стандартной библиотеки, хотя я использую домашний готовый компонент в некоторых моих приложениях, для чего требуется более высокое состояние надежности. –

Смежные вопросы