【发布时间】:2010-10-07 17:08:20
【问题描述】:
C# 似乎在科学计算方面显示出一些前景,但我发现很少有人能绘制 2D 图,这对理科学生和科学家来说都非常重要。
是否有可靠、免费的方法来使用 C# 创建具有出版质量的 2D 绘图?并且能够保存为多种格式(png、eps、...)。类似于 Python 的 matplotlib 的东西?
【问题讨论】:
标签: c# plot scientific-computing
C# 似乎在科学计算方面显示出一些前景,但我发现很少有人能绘制 2D 图,这对理科学生和科学家来说都非常重要。
是否有可靠、免费的方法来使用 C# 创建具有出版质量的 2D 绘图?并且能够保存为多种格式(png、eps、...)。类似于 Python 的 matplotlib 的东西?
【问题讨论】:
标签: c# plot scientific-computing
我推荐的是OxyPlot。它包含 WPF、Metro、Silverlight、Windows Forms、Avalonia UI、XWT 的软件包。除了图形,它还可以导出为 SVG、PDF、Open XML 等。它甚至支持 Android 和 iOS 的 Mono 和 Xamarin。它也在积极开发中。
还有一个新的(至少对我而言)开源 .NET 绘图库,名为 Live-Charts。情节非常互动。库支持 WPF、WinForms 和 UWP。 Xamarin 已计划。该设计是针对 MV* 模式进行的。 但是@Paweł Audionysos 认为 Live-Charts WPF 的性能并不是那么好。
【讨论】:
float[] 而不是示例中所示的函数。实时图表在乞讨时看起来很棒。 Giffs 看起来令人印象深刻,API 看起来更好,有据可查,很多例子,但是......它的性能是不可接受的。它挂起 20 秒只是为了显示 4K 浮点数。即使有 400 也有点窒息 :( 他们提供了一些付费的、更快的版本,可以更直接地使用 DirectX,但我不认为......我知道性能如此差不是 WPF 的错。
Line 这样的 WPF 原语,或者我不知道,但是在 800x600 视图中渲染的 4K 什么都不是……事件 LINQPad Chart 可以在第二秒内渲染 100K 行。无论如何,如果您打算绘制几个样本,我会建议读者尝试其他方法。
Chart 组件。如果您想要免费选项,我认为最好的选择。
我只是想补充 MajesticRa 对OxyPlot 的推荐,并指出 OxyPlot 如何用于各种绘图案例。该软件是免费和开源的,非常精致,并且允许在普通 2D 映射之外进行多种用途。
我一直在将 OxyPlot 用于一个非正统的项目,我在其中显示(在 WPF/C# 中)一个地图(机器人占用网格),我可以用 LineSeries(行进路径)和 PointSeries(路点)覆盖它。使用 OxyPlot ImageAnnotation 功能,我可以在我的 OxyPlot 中显示 60Hz 视频,方法是定期更新其自己的线程上的 ImageAnnotation,同时将一系列点映射到视频之上。背景视频和点甚至是可扩展和可翻译的。
希望这对其他希望在图像和视频之上显示绘图的人有所帮助。
【讨论】:
【讨论】:
ZedGraph 是个不错的选择。
【讨论】:
gnuplot 是一个在科学界广泛使用的积极维护的程序。通常绘图是从可以在 C# 程序中写出的数据文件生成的,但也可以从 C# 调用 gnuplot 可执行文件并将生成的图像显示在 C# 图片框中。
【讨论】:
NPlot 是一个相当不错的简单开源 2D 绘图 API。不幸的是,该网站已关闭。我不知道这是否只是暂时的。我没有听说任何坏消息。它可能会恢复。
这是一篇描述它的文章:
http://aspnet.4guysfromrolla.com/articles/072507-1.aspx
上一篇文章使用的是 VB.NET,但显然这适用于 C#。
同样,不知道为什么 nplot 的网站目前无法运行,但它是我过去使用过的一种流行的绘图 API。我将其发布以供您参考,如果发生可能的事件,nplot 将很快备份。 :)
编辑:
感谢 Hosam Aly,看来 SourceForge 项目仍然可以在此处访问:
【讨论】:
见Samples Environment for Microsoft Chart Controls:
Microsoft Chart Controls for .NET Framework 的示例环境包含 200 多个ASP.NET 和 Windows 窗体示例。这些示例涵盖了 .NET Framework 的图表控件中的所有主要功能。它们使您能够查看 Chart 控件的运行情况,并将代码用作您自己的 Web 和 Windows 应用程序的模板。
似乎更面向商业,但可能对理科学生和科学家有一些价值。
【讨论】: