交易与加密货币平台
交易台应用程序显示所选品种的蜡烛图,价格窗格上有移动平均线和 Bollinger 带,下方窗格有 RSI 和成交量,行情推送时还显示买卖盘区间带。分析师绘制的趋势线和斐波那契位在缩放时保持锚定。Binance 数据源直接由交易所的数据流生成蜡烛。
- 蜡烛图系列
- 指标与窗格
- 绘图工具
- Binance 数据源
一套图表库,覆盖仪表盘、数据分析和交易界面。从折线到瀑布图共十七种系列类型,内置 SMA、RSI、MACD 和 Bollinger 指标、实时数据源、缩放与绘图工具,以及 PNG 或 SVG 导出。LiveLine 演示通过环形缓冲区流式处理 1,000,000 个点。
七个分组,十八项功能。每项功能都标明实际的组件或属性,并链接到对应的帮助主题。标有“注册版”的功能不包含在免费的 .NET 社区版中。
一个模型,十七种系列类型,按数据需要配置任意数量的坐标轴。
图表类型
销售界面需要柱状图和环形图,实验室界面需要散点图和热力图,交易界面需要蜡烛图。sgcCharts 用同一个模型全部覆盖:每个系列都是一个组件,可拖放到窗体上或通过代码创建,关联到 TsgcChart,并可与其他系列自由组合。API 只需学习一次,即可在每个界面中复用。
TsgcChartSeries_Bar 绘制垂直或水平柱状图,可分组或堆叠(Grouping)MirrorPlot 还会镜像绘图区及其坐标轴
图表类型
管理报表需要展示占比、层级和转化阶段。饼图系列只需一个属性即可变为环形图,并把大量小扇区合并为一个“其他”扇区,保持图表清晰易读。矩形树图按数值确定嵌套矩形的大小并可点击下钻,漏斗图则展示销售或支持流程的每个阶段及其百分比。标签可放在扇区内部或外部,矩形树图可按分组或按数值通过色阶着色。每个系列都遵循图表主题,因此报表与应用程序的其余部分保持一致。
InnerRadiusPercent 生成环形图,OthersThreshold 和 OthersText 用于合并小扇区ExplodeOnClick 在用户点击时将扇区拉出TsgcChartSeries_Treemap,带 DrillOnClick、DrillUp 和 OnDrill 事件TsgcChartSeries_Funnel,带 NeckWidthPercent 和 ProportionalHeight图表类型
财务团队想看从预算到实际的利润桥,质量工程师想看每个班次周期时间的分布,产品经理想在一张图表上看到收入、利润率和人数。四种系列覆盖这些场景。气泡图在 X 和 Y 之外再增加一个大小。箱线图用四分位数、中位数和离群值概括一个样本。瀑布图由正负步骤累计出总数,途中可加入小计和合计。范围面积填充最低值与最高值之间的区带,适合预测区间或公差带。
TsgcChartSeries_Bubble,提供 AddBubble、MinBubbleSize、MaxBubbleSize 和 SizeMode,可按面积(cbsArea)或直径(cbsDiameter)确定大小TsgcChartSeries_BoxPlot 绘制最小值、四分位数、中位数、最大值和可选的平均值;AddValues 按 Excel 的 QUARTILE.INC 方式从原始样本计算四分位数,并找出 Tukey 离群值TsgcChartSeries_Waterfall,提供 AddStep、AddSubtotal、AddTotal 和 ShowConnectorsTsgcChartSeries_RangeArea,用 AddRange 设置下限和上限区带图表类型
实验报告要显示每个测量值及其不确定度,仪表盘上的趋势用曲线比锯齿线更易读。在折线、面积或范围面积系列上设置 Smooth,即可绘制单调三次样条。曲线不会超出数据范围,因此不会出现数值中并不存在的峰或谷。误差线可为折线、面积、散点和柱状系列显示每个点的不确定度,来源可以是固定值、百分比、系列的标准差,或每个点各自的自定义值。
TsgcChartSeries_Line、TsgcChartSeries_Area 和 TsgcChartSeries_RangeArea 上的 SmoothErrorBars.Kind:cebFixed、cebPercent、cebStdDev,或配合 AddCustom 使用的 cebCustomDirection:cedBoth、cedPlus 或 cedMinus,端帽大小由 CapWidth 设置
图表类型
温度与压力、收入与数量、价格与成交量:真实数据很少共用同一个刻度。按需添加任意数量的坐标轴,放在左侧、右侧、顶部或底部,并将每个系列绑定到各自的一对坐标轴。每个坐标轴可自行选择类型、范围和标签格式,因此日期时间底部坐标轴可以与数值左侧坐标轴和对数右侧坐标轴并存。每个系列指定其使用的坐标轴,所以两条折线可共用左侧坐标轴,而第三条使用右侧坐标轴。各坐标轴可独立缩放,ResetZoom 可恢复到完整范围。
TsgcChart 上的 Axes 集合,每个刻度对应一个 TsgcChartAxisAxisType:catNumeric、catLogarithmic、catDateTime 或 catCategoryPosition:capLeft、capRight、capTop 或 capBottomMinimum、Maximum、Automatic、LabelFormat 和 Inverted每个版本都包含蜡烛图,另有金融功能包:指标、窗格、标记和绘图工具。
金融图表
价格历史是任何交易界面的核心。蜡烛图和 OHLC 系列在日期时间坐标轴上,根据您自己的数据或数据集绘制开盘价、最高价、最低价和收盘价。当多年的数据柱进入狭窄的窗口时,落在同一像素列中的蜡烛会被合并为一根正确的蜡烛(首个开盘价、最高价、最低价、最后收盘价、成交量求和),因此图表不会出现误导性的尖峰。OHLC 系列以带开盘和收盘刻度的条形绘制相同的数据,适合较长的历史数据。两种系列都支持每个图表的缩放、平移和十字光标。
TsgcChartSeries_Candlestick 和 TsgcChartSeries_OHLC 共用一个 OHLC 缓冲区TsgcChartDataSource_DataSet 映射 OpenField、HighField、LowField、CloseField 和 VolumeFieldsgcChartDecimateOHLC 按像素列合并蜡烛
金融图表 仅限注册版
分析师希望在价格图上看到移动平均线、Bollinger 带、RSI 和 MACD。每个指标都是一个系列:将其 Source 指向蜡烛图系列,蜡烛变化时它会自动重新计算。无需编写、测试公式,也无需与实时数据保持同步。RSI 和 Stochastic 等振荡指标会绘制超买和超卖参考线,每个指标系列都以自己的颜色显示在图例中。可以把它们放在价格窗格上,也可以为每个指标单独设置一个窗格。
TsgcChartSeries_SMA、TsgcChartSeries_EMA、TsgcChartSeries_WMA、TsgcChartSeries_BollingerTsgcChartSeries_RSI、TsgcChartSeries_MACD、TsgcChartSeries_Stochastic,带 GuideLinesTsgcChartSeries_ATR、TsgcChartSeries_VWAP、TsgcChartSeries_VolumeRecalculate,通过 Values 读取计算结果.NET 社区版包含蜡烛图和 OHLC 系列,但不包含指标系列。
阅读帮助主题
金融图表 仅限注册版
交易布局会把价格、成交量和振荡指标叠放在共用同一时间轴的独立窗格中,因此缩放价格窗格时,其下方的所有窗格同步缩放。价格轴上的标记一眼就能显示最新值,行情推送时,阴影区间带显示当前买卖价差。窗格高度以百分比表示,布局会随窗口缩放并在调整大小后保持不变。每个窗格还有 Visible 属性,因此界面可以仅在用户需要时才显示指标窗格。
TsgcChartPane 的 Panes 集合,带 HeightPercent;用户可拖动窗格之间的分隔条Pane 属性分配到某个窗格LastValueMarker,带 Color 和 VisibleBidAskBand,带 Bid、Ask、BidColor 和 AskColor金融图表 仅限注册版
交易者会直接在图表上标注支撑位、趋势通道和回撤位。选择一个工具,在绘图区拖动,图形即锚定到数据坐标,因此用户缩放或平移时它仍停留在正确的蜡烛上。图形是一个集合,您也可以通过代码填充、锁定以防编辑或删除。线条可以是实线、虚线或点线,并有各自的颜色和宽度。由于图形只是带有普通坐标的普通集合,您可以将其与用户工作区一起保存,并在下次启动时重新添加。
Interaction.DrawingTool:cdtTrendLine、cdtHorizontalLine、cdtVerticalLine、cdtRectangle、cdtFibonacciDrawings 集合,带 X1、Y1、X2、Y2、Color、Dash 和 LockedDeleteSelectedDrawing 删除用户选中的图形在图表上解释数据,并让用户在运行时调整图表。
标注与编辑
操作员界面需要把报警限显示为一条线,把正常运行范围显示为一个区带,并在批次开始的时刻加一条备注。标注按数据值定位,因此用户缩放、平移或有新点流入时,它们仍停在正确的位置。标注框可以指向固定的数据点,也可以跟随实时系列的最新点。针对控制室,ApplyISA101Theme 会把图表切换为 ISA-101 HMI 界面所用的灰色、低调风格。颜色只留给异常状态,因此优先级 1 到 4 的报警颜色在平静的界面上格外醒目。
TsgcChart 上的 Annotations 集合,每项对应一个 TsgcChartAnnotationKind:cakText、cakLine、cakHorizontalLine、cakVerticalLine、cakRectangle、cakHorizontalBand 或 cakCalloutAnchorSeries 和 AnchorPoint 把标注框绑定到数据点,AnchorPoint 默认值 -1 表示跟随最新点ApplyISA101Theme 保留优先级 1 到 4 的报警颜色标注和 ISA-101 预设包含在每个版本中,免费的社区版也不例外,可用于 VCL、FireMonkey、WinForms、WPF 和 Avalonia。预设的说明见主题与调色板。
阅读帮助主题
标注与编辑
图表放进演示文稿之前,用户可能想把销售折线换成公司色,把坐标轴标题改得更清楚,并隐藏退货系列。有了运行时图表编辑器,用户可以自己完成,无需重新生成应用程序。一次调用即可打开对话框,用户可在其中编辑标题、图例、坐标轴以及每个系列:颜色、可见性、平滑,以及换成另一种兼容的系列类型。
对于通过 TsgcChartTableLink 绑定到表的图表,图表设计器会在同一个对话框中增加一个数据页:图表类型(簇状、堆积或百分比堆积柱形图、折线图、面积图、饼图、圆环图或组合图)、按列或按行取系列、前 N 项、饼图系列、带格式的数据标签、数据透视图的总计行和总计列,以及组合图中每个度量值的系列类型和坐标轴。它是 sgcPivotGrid 数据透视图的设计器,也适用于该链接所绘制的任何表。 仅限注册版
ShowEditorShowEditorAsyncSmooth,以及在兼容类型范围内更改系列类型sgcVCLShowChartDesigner 和 sgcFMXShowChartDesigner,.NET 中的 ShowDesigner 和 ShowDesignerAsync,以及 Delphi IDE 中的 Chart designer... 动词运行时图表编辑器包含在每个版本中,免费的社区版也不例外。图表设计器以及表链接的百分比堆积柱形图、饼图、圆环图和组合图类型不包含在社区版中;柱形、堆积柱形、折线和面积图的表链接则包含在内。
阅读帮助主题 阅读图表设计器主题流式处理大型数据集,让用户看得更仔细。
实时数据与探索
传感器日志、音频电平和逐笔行情数据会不断增长。快速折线系列将点保存在固定 Capacity 的环形缓冲区中,因此内存保持平稳,最旧的点会被滚动淘汰。绘制时,每个系列会把可见点缩减为每个像素列约一组,无论数据到达多快,图表每秒最多重绘 MaxFPS 次。LiveLine 演示从后台线程向 1,000,000 个点的缓冲区流式写入数据。该演示可在运行时切换数据速率和可见窗口,让您在编写任何代码之前,就能在自己的硬件上评估其表现。
TsgcChartSeries_FastLine,带 Capacity 和 BufferMode(cbmOverwrite 或 cbmGrow)Decimation:dmNone、dmMinMax(视觉上精确)或 dmLTTBTimeWindow 仅显示流式坐标轴上最近 N 秒的数据AddXY 和 AddY 在数据到达时追加点实时数据与探索
用户希望仔细查看数据中有趣的部分。每个图表都已支持滚轮缩放、鼠标框选缩放、平移和触摸手势,十字光标和工具提示会吸附到最近的点。在流式图表上,缩放会暂停自动滚动,并在您选定的延迟后自动恢复。每个选项都是一个属性,因此展示终端屏幕可以关闭交互,分析师界面则可以把缩放限制在时间轴上。相同的行为适用于 VCL、FireMonkey 和 .NET 视图。
TsgcChartInteraction:WheelZoom、BoxZoom、Pan、ZoomMode(czmX、czmY、czmXY)Crosshair、Tooltip 和 SnapToPointAutoScrollResumeDelay 和 PausedOnZoom、OnCrosshairMove 和 OnSeriesClick 事件,ResetZoom 用于返回绑定现有数据,接入实时数据流,并在任何地方渲染图表。
数据输入,图像输出
大多数图表展示的是您已有的数据:查询结果、导出的文件、REST 响应或表格的行。数据源可将它们载入系列,无需循环调用 AddXY。指定字段或列,数据变化后调用 Refresh,图表即随之更新。数据集数据源还可为蜡烛图映射开盘、最高、最低、收盘和成交量字段。数据源是组件,因此可以在设计时通过对象检查器进行设置。设置 Live 后,图表无需任何代码即可跟随数据集:用户在表格中保存、删除或插入记录,或更改过滤条件时,图表会重新加载。
TsgcChartDataSource_DataSet 通过 XField、YField 和 LabelField 读取任意 TDataSetLive 通过 TDataLink 跟随保存、删除、插入和过滤的变化,并做了节流,一连串变化只触发一次重新加载;在 .NET 中,Live 跟随 DataTable 的变化FollowCursor 在用户滚动数据集时移动当前聚焦的点(Delphi)ExtraFields 为气泡图、范围面积、箱线图和瀑布图系列提供大小、最低值、四分位数或类型列TsgcChartDataSource_CSV 和 TsgcChartDataSource_JSON 用于文件和 API 响应TsgcChartDataSource_Table 用于内存表,例如 sgcGrid 的行TsgcChartDataSource_Manual 用于从代码或后台线程推送点数据输入,图像输出 仅限注册版
将图表连接到消息代理或行情流,每条消息到达时即被绘制。sgcChartsWS 桥接挂接 sgcWebSockets 客户端的消息事件,并将 JSON 映射为点或蜡烛。Binance 数据源可通过聚合器,以一秒到一个月的周期,由原始成交数据生成蜡烛。数据源停止时,会恢复客户端原有的事件处理程序。
TsgcChartDataSource_Binance:Symbol、Stream(cbsKLine、cbsTicker、cbsTrade)、IntervalTsgcChartDataSource_MQTT,带 TopicFilter 和 PayloadFormatTsgcChartDataSource_WebSocket 和 TsgcChartDataSource_SSE 用于基于 WebSocket 或服务器发送事件的 JSONTsgcChartAggregator 通过 AddTrade 将成交数据转换为蜡烛该桥接需要 sgcWebSockets。在社区版中,请使用手动数据源,通过自己的代码向图表提供数据。
阅读帮助主题数据输入,图像输出
图表经常需要离开屏幕:每日报表邮件、PDF、网页或返回图像的 REST 端点。TsgcChartRenderer 无需窗体和消息循环,即可将同一个图表模型绘制为 PNG 或 SVG,适用于控制台应用程序、Windows 服务,或使用 Delphi 10.2 及更高版本构建的 Linux64 服务器。在屏幕上,视图只需一次调用即可保存用户所见内容。输出使用与屏幕相同的主题、字体和调色板,因此 PDF 中的图表与仪表盘上的完全一致。
RenderToPNGFile、RenderToPNGStream、RenderToSVGFile、RenderToSVGStreamWidth、Height 和 Scale 用于高 DPI 图像TsgcVCLChart 上的 SaveToPNG 和 SaveToSVGesegece.sgcCharts.Rendering 包预览显示的内容与打印机和 PDF 得到的完全一致。
打印、预览和 PDF
每个图表在自己的一页上打印,其系列、坐标轴、标题和图例与屏幕上一致。十字光标、工具提示、缩放矩形和绘图对象的选择手柄不会出现在纸上,页面设置中的标题为空时则使用图表的标题。
Print 显示打印对话框或直接打印到默认打印机,ShowPrintPreview 打开带有翻页、缩放、页面设置、打印和 PDF 导出的预览PrintSettings 保存纸张、方向、页边距、缩放以及页眉和页脚文字,打印机、预览和 PDF 都使用它ExportToPDF 把图表写成带真正文本的矢量图形,默认是带标签的 PDF/UA,并附上根据图表生成的替代文本:包括其标题、类型、每个系列及其点数,以及每个坐标轴的范围TsgcUIPDFOptions 的 PDFALevel 可为归档加上 PDF/A-2a 或 PDF/A-3a,可单独使用,也可与 PDF/UA 同时使用打印和预览包含在每个版本中,包括免费的社区版,可用于 VCL、FireMonkey、WinForms、WPF 和 Avalonia。在 FireMonkey 中,打印在 Windows 和 macOS 上可用,预览和 PDF 导出则适用于所有平台。PDF 导出需要 sgcUIPDF 桥接和已获许可的 sgcPDF(在 .NET 中为 NuGet 包 esegece.sgcUICore.sgcPDF),因此不包含在社区版中。
面向屏幕阅读器的 UI Automation、键盘和高对比度,无需任何设置。
无障碍
sgcCharts 将图表连同其标题、坐标轴、图例、系列和数据点向 Microsoft UI Automation 公开。每个数据点公开其类别和值,图表还会用写入无障碍 PDF 的同一段替代文本来描述自己。
无障碍功能在每个版本中默认开启,包括免费的社区版,可用于 VCL(Delphi 和 C++Builder 从 Delphi 7 到 Delphi 13 的每个版本)、Windows 上的 FireMonkey,以及 WinForms、WPF 和 Avalonia。在 Delphi 和 C++Builder 中,AccessibleName 和 AccessibleDescription 设置向 UI Automation 公开的名称和说明,在 .NET 中,各框架标准的无障碍名称和帮助文本起同样的作用。请参见无障碍符合性报告。鼠标缩放和平移以及金融绘图工具没有键盘替代方式。
sgcUI 套件演示中的 sgcCharts:使用内置模拟数据、可离线运行的完整应用程序。
带布林带、成交量窗格和绘图工具的 K 线图。
Altamira Markets →
十二个传感器分布在三个堆叠窗格中,带告警限值区间。
Altamira Plant →
配送历史的漏斗图、环形图和柱状图。
Altamira Fleet →
价值与风险的气泡图,以及预算树状图。
Altamira PMO →数据来自随产品发布的 LiveLine 演示和抽稀参考,您可以自行复现。
| 测量项 | 结果 | 条件 |
|---|---|---|
| LiveLine 环形缓冲区中的点数 | 1,000,000 | TsgcChartSeries_FastLine 通过 TsgcChartDataSource_Manual 由后台线程提供数据 |
| 每个像素列保留的点数 | 最多 4 个 | dmMinMax 抽稀:首点、最小值、最大值和末点 |
来源:记录这些数据的帮助主题。
交易台应用程序显示所选品种的蜡烛图,价格窗格上有移动平均线和 Bollinger 带,下方窗格有 RSI 和成交量,行情推送时还显示买卖盘区间带。分析师绘制的趋势线和斐波那契位在缩放时保持锚定。Binance 数据源直接由交易所的数据流生成蜡烛。
控制室客户端同时绘制数十个传感器的数据。带环形缓冲区的快速折线系列以固定内存保存数小时的读数,时间窗口显示最近几分钟,抽稀则让重绘保持轻量。MQTT 主题直接为图表提供数据,热力图显示哪些机器温度偏高。
后台服务将每周收入环形图、销售漏斗和十二个月趋势渲染为 PNG,用于管理层邮件,并渲染为 SVG,用于内部网。同样的图表代码也在桌面应用程序中运行,绑定同一个数据集,因此数字和颜色始终一致。
Delphi、C++ Builder 和 C# 中使用相同的 API:按地区显示收入的环形图,带“其他”扇区,采用深色主题并导出为 PNG。
构建模型、一个中心孔占 55% 的饼图系列、一个 VCL 视图,以及一个写出 1200 x 700 PNG 的渲染器。
uses
Controls, sgcUICore_Theme, sgcCharts_Chart, sgcCharts_Series_Pie,
sgcCharts_Renderer, sgcCharts_VCL;
// Revenue by region as a donut chart with an "Others" slice,
// on a dark theme, exported to PNG.
procedure BuildDonut(aOwner: TWinControl);
var
oChart: TsgcChart;
oView: TsgcVCLChart;
oPie: TsgcChartSeries_Pie;
oPNG: TsgcChartRenderer;
begin
oChart := TsgcChart.Create(aOwner);
oChart.Theme := utDark;
oChart.Title.Text := 'Revenue by region';
oChart.Legend.Position := clpRight;
oPie := TsgcChartSeries_Pie.Create(aOwner);
oPie.Chart := oChart;
oPie.InnerRadiusPercent := 55;
oPie.OthersThreshold := 4;
oPie.OthersText := 'Others';
oPie.ExplodeOnClick := True;
oPie.AddItem('North America', 420);
oPie.AddItem('Europe', 310);
oPie.AddItem('Asia Pacific', 280);
oPie.AddItem('Latin America', 95);
oPie.AddItem('Middle East', 12);
oView := TsgcVCLChart.Create(aOwner);
oView.Parent := aOwner;
oView.Align := alClient;
oView.Chart := oChart;
oPNG := TsgcChartRenderer.Create(aOwner);
oPNG.Chart := oChart;
oPNG.RenderToPNGFile('revenue.png', 1200, 700);
end;C++ Builder 中的同一个环形图,使用生成的 sgcCharts_*.hpp 头文件。
#include <vcl.h>
#include "sgcUICore_Theme.hpp"
#include "sgcCharts_Chart.hpp"
#include "sgcCharts_Series_Pie.hpp"
#include "sgcCharts_Renderer.hpp"
#include "sgcCharts_VCL.hpp"
// Revenue by region as a donut chart with an "Others" slice,
// on a dark theme, exported to PNG.
void BuildDonut(TWinControl *aOwner)
{
TsgcChart *oChart = new TsgcChart(aOwner);
oChart->Theme = utDark;
oChart->Title->Text = "Revenue by region";
oChart->Legend->Position = clpRight;
TsgcChartSeries_Pie *oPie = new TsgcChartSeries_Pie(aOwner);
oPie->Chart = oChart;
oPie->InnerRadiusPercent = 55;
oPie->OthersThreshold = 4;
oPie->OthersText = "Others";
oPie->ExplodeOnClick = true;
oPie->AddItem("North America", 420, 0);
oPie->AddItem("Europe", 310, 0);
oPie->AddItem("Asia Pacific", 280, 0);
oPie->AddItem("Latin America", 95, 0);
oPie->AddItem("Middle East", 12, 0);
TsgcVCLChart *oView = new TsgcVCLChart(aOwner);
oView->Parent = aOwner;
oView->Align = alClient;
oView->Chart = oChart;
TsgcChartRenderer *oPNG = new TsgcChartRenderer(aOwner);
oPNG->Chart = oChart;
oPNG->RenderToPNGFile("revenue.png", 1200, 700);
}C# 中的无界面渲染:使用 Rendering 包,无需窗口,将同一模型渲染为 PNG。
using esegece.sgcCharts;
using esegece.sgcUICore;
// Revenue by region as a donut chart with an "Others" slice,
// on a dark theme, rendered headless to PNG (no window needed).
public static class RevenueDonut
{
public static void Render()
{
var oChart = new TsgcChart();
oChart.Theme = TsgcUITheme.utDark;
oChart.Title.Text = "Revenue by region";
oChart.Legend.Position = TsgcChartLegendPosition.clpRight;
var oPie = new TsgcChartSeries_Pie();
oPie.Chart = oChart;
oPie.InnerRadiusPercent = 55;
oPie.OthersThreshold = 4;
oPie.OthersText = "Others";
oPie.ExplodeOnClick = true;
oPie.AddItem("North America", 420);
oPie.AddItem("Europe", 310);
oPie.AddItem("Asia Pacific", 280);
oPie.AddItem("Latin America", 95);
oPie.AddItem("Middle East", 12);
var oPNG = new TsgcChartRenderer();
oPNG.Chart = oChart;
oPNG.RenderToPNGFile("revenue.png", 1200, 700);
}
}dotnet add package esegece.sgcCharts.RenderingDelphi 19 个演示,C++ Builder 同样 19 个,.NET 12 个,全部包含在预编译演示下载中。以下是展示上述功能的演示。
快速折线系列,带 1,000,000 点的环形缓冲区并由后台线程提供数据,可选 10 秒、60 秒或整个缓冲区的时间窗口,支持主题切换,十字光标覆盖整个数据流。
日期时间坐标轴上的日蜡烛图,带成交量坐标轴。可用鼠标缩放和平移;当多根蜡烛共用一个像素列时,它们会合并为一根正确的蜡烛。
在蜡烛图上用鼠标绘制趋势线、水平线和垂直线、矩形以及斐波那契回撤,然后可选中、锁定或删除。
一个 1,000 行的客户端数据集显示在 DB 表格中,并由两个数据集数据源读取为折线系列和柱状系列。编辑一行并重新加载,图表随之更新。
气泡、箱线图、瀑布图和平滑范围面积系列,配有误差线、注释和 ISA-101 报警线,以及 ISA-101 主题和运行时图表编辑器,图表跟随实时数据集更新。.NET 版本为 BusinessCharts、BusinessChartsWpf 和 BusinessChartsAvalonia。FireMonkey 版本为 BusinessChartsFMX。
通过 sgcChartsWS 桥接,将 Binance 行情流的实时蜡烛显示在带窗格和指标的金融图表上。需要 sgcWebSockets。
通过 sgcChartsWS 桥接,由 MQTT 主题提供的传感器读数在到达时即被绘制。需要 sgcWebSockets 和 MQTT 代理。
一个控制台程序,构建图表并在无窗口的情况下写出 PNG 和 SVG 文件。HeadlessService 则通过 Windows 服务完成同样的工作。
sgcCharts 包含在 sgcUI Professional 和 Enterprise 中,也可单独购买。sgcCharts 还包含在 All-Access 套餐中。
免费的社区版(NuGet 上的 esegece.sgcCharts.Community)包含全部十七种系列、标注、误差线、ISA-101 预设、运行时编辑器、视图、缓冲区、手动、CSV、JSON 和数据集数据源、交互以及无界面输出。它不包含金融功能包(指标和成交量系列、窗格、聚合器、绘图工具、最新价标记、买卖盘区间带)、包含高级表链接类型的图表设计器,以及 sgcChartsWS 桥接。
| 功能 | 社区版(免费) | 注册版 |
|---|---|---|
| 17 种系列类型,含蜡烛图和 OHLC | ✓ | ✓ |
| 快速折线、环形缓冲区和抽稀 | ✓ | ✓ |
| 缩放、平移、十字光标和工具提示 | ✓ | ✓ |
| 手动、CSV、JSON 和实时数据集数据源 | ✓ | ✓ |
| 主题、PNG 和 SVG 导出、无界面渲染器 | ✓ | ✓ |
| 标注、误差线、ISA-101 预设和运行时图表编辑器 | ✓ | ✓ |
| 指标和成交量系列 | − | ✓ |
| 窗格、最新价标记、买卖盘区间带 | − | ✓ |
| 绘图工具和成交聚合器 | − | ✓ |
| sgcChartsWS 实时数据源(Binance、MQTT、WebSocket、SSE) | − | ✓ |
| 用于表链接的图表设计器,含百分比堆积柱形图、饼图、圆环图和组合图类型 | − | ✓ |
| 组件 | 说明 |
|---|---|
| TsgcChart | 图表模型:坐标轴、系列、图例、主题和交互。 |
| TsgcVCLChart、TsgcFMXChart | 适用于 VCL 和 FireMonkey 的视图。 |
| TsgcChartRenderer | 无界面 PNG 和 SVG 渲染,在服务和 Linux64 上同样可用。 |
| TsgcChartSeries_* | 17 种系列类型和金融指标系列。 |
| TsgcChartDataSource_Manual、_CSV、_JSON、_DataSet、_Table | 用于点、文件、数据集和表的数据源。 |
| TsgcChartDataSource_WebSocket、_MQTT、_SSE、_Binance | sgcChartsWS 桥接的实时数据源(仅注册版)。 |
| 目标 | 组件 | 平台 |
|---|---|---|
| Delphi 7 到 13,VCL | TsgcVCLChart | Win32 与 Win64 |
| Delphi XE6 到 13,FireMonkey | TsgcFMXChart | Windows、macOS、iOS 和 Android |
| C++ Builder 2007 到 13 | TsgcVCLChart、TsgcFMXChart | 生成的 .hpp 头文件和静态库 |
| Delphi 10.2 到 13,无界面 | 模型和 TsgcChartRenderer | Linux64,服务器上的 PNG 和 SVG |
| .NET Framework 4.7.2、.NET 8、9 和 10 | TsgcWinFormsChart、TsgcWpfChart、TsgcAvaloniaChart | WinForms、WPF、Avalonia 12 和无界面渲染 |
LiveLine 演示从后台线程向带 1,000,000 点环形缓冲区的快速折线系列流式写入数据。由于缓冲区具有固定的 Capacity,内存保持不变;抽稀把可见点缩减为每个像素列几个点,MaxFPS 则限制重绘速率。运行预编译演示,即可在您自己的机器上看到效果。
十七种:折线、快速折线、阶梯线、面积、范围面积、柱状、散点、气泡图、蜡烛图、OHLC、饼图与环形图、雷达图、热力图、矩形树图、漏斗图、箱线图和瀑布图。每种都是一个组件,因此可以在同一个图表上组合多种,并按需使用任意数量的坐标轴。
不包含。社区版包含蜡烛图和 OHLC 系列,但不包含指标和成交量系列、窗格、聚合器、绘图工具、最新价标记或买卖盘区间带。这些功能以及 sgcChartsWS 实时数据源需要注册版。请参阅帮助中的版本。
可以。SaveToPNG 和 SaveToSVG 保存视图所显示的内容,TsgcChartRenderer 则可按您选择的宽度、高度和缩放比例,在无窗口的情况下将图表模型渲染为 PNG 或 SVG 文件或流。这是生成 PDF 或邮件正文的常用途径。
可以,以无界面方式运行。自 Delphi 10.2 起,图表模型和 TsgcChartRenderer 可为 Linux64 编译并写出 PNG 和 SVG。没有 Linux 视图控件。在 .NET 中,esegece.sgcCharts.Rendering 包面向 .NET Standard 2.0、.NET Framework 4.7.2 以及 .NET 6、8、9 和 10。
每个产品授权都包含手动点、CSV、JSON、任意 TDataSet 和内存表。使用注册版和 sgcWebSockets 时,sgcChartsWS 桥接还增加了 Binance 行情流、MQTT 主题、基于 WebSocket 的 JSON 以及服务器发送事件。