63

C# 似乎在科学计算方面显示出一些希望,但我发现很少有人能绘制 2D 图,这对理科学生和科学家来说都非常重要。

是否有可靠、免费的方法来使用 C# 创建具有出版质量的 2D 绘图?并且能够保存为多种格式(png、eps、...)。类似于 Python 的 matplotlib 的东西?

4

7 回答 7

58

我推荐使用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 的性能并不好。

于 2012-11-29T16:42:49.573 回答
10

ZedGraph是一个不错的选择。

于 2009-02-15T05:56:43.950 回答
8

请参阅Microsoft 图表控件的示例环境

Microsoft Chart Controls for .NET Framework 的示例环境包含 200 多个针对ASP.NET 和 Windows 窗体的示例。这些示例涵盖了 .NET Framework 的图表控件中的所有主要功能。它们使您能够查看正在运行的图表控件,并将代码用作您自己的 Web 和 Windows 应用程序的模板。

似乎更面向商业,但可能对理科学生和科学家有一些价值。

于 2009-02-15T06:06:40.307 回答
3

gnuplot是一个在科学界广泛使用的积极维护的程序。通常绘图是从可以在 C# 程序中写出的数据文件生成的,但也可以从 C# 调用 gnuplot 可执行文件并将生成的图像显示在 C# 图片框中。

于 2010-08-29T00:25:00.767 回答
2

几天前我开始使用新的 ASP.NET 图表控件,它的功能绝对令人惊叹。

链接在这里。

编辑:这显然仅在您使用 ASP.NET 时才适用。不确定 WinForms。

于 2009-02-15T05:46:58.403 回答
1

我只是想补充 MajesticRa 对OxyPlot的推荐,并指出 OxyPlot 如何用于各种绘图案例。该软件是免费和开源的,非常精致,并允许在普通 2D 映射之外进行多种用途。

我一直在将 OxyPlot 用于一个非正统的项目,我在其中显示(在 WPF/C# 中)一个地图(机器人占用网格),我可以用 LineSeries(路径经过)和 PointSeries(路点)覆盖它。使用 OxyPlot ImageAnnotation 功能,我可以在我的 OxyPlot 中显示 60Hz 视频,方法是定期更新其自己的线程上的 ImageAnnotation,同时将一系列点映射到视频之上。背景视频和点甚至是可扩展和可翻译的。

希望这对其他希望在图像和视频之上显示图的人有所帮助。

于 2015-05-08T12:47:10.930 回答
0

NPlot 是一个相当不错的简单开源 2D 绘图 API。不幸的是,该网站已关闭。我不知道这是否只是暂时的。我没有听说任何坏消息。它可能会卷土重来。

http://www.nplot.com

这是一篇描述它的文章:

http://aspnet.4guysfromrolla.com/articles/072507-1.aspx

上一篇文章使用的是 VB.NET,但显然这适用于 C#。

同样,不确定为什么 nplot 的站点当前无法正常工作,但它是我过去使用过的一种流行的绘图 API。我将其发布以供您参考,如果发生可能的事件,nplot 将很快备份。:)

编辑:

感谢 Hosam Aly,看起来 SourceForge 项目仍然可以在这里访问:

http://sourceforge.net/projects/nplot

于 2009-02-15T05:52:06.783 回答