绘图(图表)组件的建议?

Posted

技术标签:

【中文标题】绘图(图表)组件的建议?【英文标题】:Recommendations for plotting (chart) component? 【发布时间】:2011-10-02 07:16:51 【问题描述】:

我正在寻找一个小部件或控件来绘制时间序列数据。基本上 plot(x,y) 其中 x 和 y 是 Nx1 个向量。我正在寻找,但没有找到太多,任何建议都会很棒!谢谢。

【问题讨论】:

在 Windows 世界中,它被称为“控件”,而不是“小部件”。 C++Builder 附带的 TChart 有问题吗? TChart,开箱即用,配合 TFastLineSeries 即可完成工作 作为所有者 Gigasoft,请参阅我们的 7 meg charting demo 作为研究德尔福图表的一部分。 【参考方案1】:

我更喜欢Jedi VCL library 中的 TJvChart,但后来我编写了 TJvChart,或者大部分内容。我推荐它的原因是它是免费的,但它有一些限制,包括缺乏适当的放大和缩小功能。

我不喜欢在我的应用程序中使用任何不包含源代码的组件,并且通常注意不要在任何严肃的项目中使用闭源组件,因此如果您需要使用,请计划购买 TeeChart 源代码组件。不过,我并不反对 Tee-Chart;如果您选择在商业项目中使用它,那么它也很棒。请注意,对于您真正想认真使用的任何东西,购买源代码确实是 100% 值得的。

快速入门: 1.下载并安装JVCL。 2. 打开包含的 JvChart 演示。

*** 风格教程: 1. 将 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;

【讨论】:

TeeChart 自带源代码。你只需要为此付费。恕我直言,任何严肃的项目都应该使用支持良好的组件,无论是否商业(并且始终建议获取长期项目的源代码)。否则你的论点可以用来使用 FPC/Lazarus 而不是 Delphi,因为 Delphi 是一个封闭源代码的应用程序,没有完整的源代码。 哪个在大数据集上表现更好? @David,我必须说我没有使用 JvChart 的经验。正如您提到的,TeeChart 具有 TFastLineSeries。将 DrawAllPoints 设置为 False 会对绘制速度产生很大影响。也可以在 TeeChart 之外定义所有系列,从而减少大系列的内存占用。有关更多信息,请参阅 [www.teechart.net/reference/articles/index.php]。尽管我在一些需要更高可靠性的应用程序中使用自制组件,但标准库的性能很难被击败。 我说的是 ldsandon;我说如果你付费,它会附带源代码。谢谢你说了两次。 ;-) TJvChart 中会影响很多人的最大限制是无法进行基于鼠标的放大和缩小。在这种情况下,如果你需要它,你真的想要 TeeChart。【参考方案2】:

使用 Delphi 提供的 TeeChart。适用于时间序列和实时图表。

【讨论】:

如果您想在屏幕上以抗锯齿方式绘制图表,您可以将其保存到 EMF 文件中,然后使用我们的Open Source GDI+ wrapper 进行渲染。我在几个项目中使用了它(通过我们的报告引擎),效果很好。使用 GDI+ 绘图的好旧 TChart 看起来好多了,至少对于最终客户而言。

以上是关于绘图(图表)组件的建议?的主要内容,如果未能解决你的问题,请参考以下文章

20200116(绘图和可视化——pandas)

什么是最好的在线UML软件工具?

使用 mvvm 绑定图表绘图仪

python绘图篇

pandas绘图设置背景

尝试实现绘图功能,但不显示图表