2009-02-15 42 views
39

C# dường như thể hiện một số lời hứa về tính toán khoa học, nhưng tôi thấy rất ít về việc vẽ đồ thị 2D, điều rất quan trọng đối với cả sinh viên khoa học và nhà khoa học.Vẽ bằng C#

Có cách nào đáng tin cậy, miễn phí, để tạo nội dung 2D có chất lượng xuất bản với C# không? Và khả năng lưu vào một số định dạng (png, eps, ...). Một cái gì đó tương tự như matplotlib của Python?

Trả lời

2

Tôi bắt đầu sử dụng điều khiển Biểu đồ ASP.NET mới cách đây vài ngày và hoàn toàn tuyệt vời về khả năng của nó.

Here is the link.

CHỈNH SỬA: Điều này rõ ràng chỉ khi bạn đang sử dụng ASP.NET. Bạn không chắc chắn về WinForms.

+0

bạn không bao gồm liên kết – ChrisW

+0

Nó ở trên đó trước khi tôi chỉnh sửa. – BobbyShaftoe

+0

Thông tin có thể được tìm thấy tại: http://weblogs.asp.net/scottgu/archive/2008/11/24/new-asp-net-charting-control-lt-asp-chart-runat-quot-server-quot -gt.aspx – Cerebrus

0

NPlot là một API lôgô 2D nguồn mở đơn giản khá tốt. Thật không may, trang web bị hỏng. Tôi không biết đây có phải là tạm thời hay không. Tôi chưa từng nghe tin xấu nào cả. Nó có thể trở lại.

http://www.nplot.com

Dưới đây là một bài viết mô tả nó:

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

Các bài viết trước sử dụng VB.NET, nhưng rõ ràng điều này sẽ làm việc với C#.

Một lần nữa, không chắc chắn lý do tại sao trang web của nplot hiện không hoạt động nhưng nó là một API âm mưu hơi phổ biến mà tôi đã sử dụng trong quá khứ. Tôi đăng nó cho thông tin của bạn và trong trường hợp nplot sự kiện có khả năng sẽ được sao lưu sớm. :)

Edit:

Nhờ một Hosam Aly, nó trông giống như các dự án SourceForge vẫn có thể được truy cập tại đây:

http://sourceforge.net/projects/nplot

+0

Bạn vẫn có thể mở trang của dự án trong SourceForge: http://sourceforge.net/projects/nplot –

8

ZedGraph là một lựa chọn tốt.

+0

tôi cũng đã thành công với ZedGraph cho các ứng dụng nhỏ –

+0

ZedGraph là thực sự tốt cho các ứng dụng nhỏ. – dalle

+4

Có phải tôi, hoặc là ZedGraph xấu xí? Tôi có thiếu các tùy chọn khiến nó trông đẹp hơn không? –

7

Xem Samples Environment for Microsoft Chart Controls:

Môi trường mẫu cho Microsoft Chart Controls cho .NET Framework chứa hơn 200 mẫu cho cả ASP.NET và Windows Forms. Các mẫu bao gồm mọi tính năng chính trong Điều khiển biểu đồ cho .NET Framework. Chúng cho phép bạn xem các điều khiển Biểu đồ hoạt động cũng như sử dụng mã làm mẫu cho các ứng dụng web và cửa sổ của riêng bạn.

Dường như có định hướng kinh doanh hơn, nhưng có thể có một số giá trị cho sinh viên khoa học và nhà khoa học.

+0

Đảm bảo kiểm tra tab doenloads cho mã mẫu –

-7

FWIW, bạn có thể muốn xem F# thay vì C# trong ngữ cảnh của máy tính kỹ thuật vì F# được thiết kế đặc biệt cho mục đích đó. Tuy nhiên, tôi đã phát triển thư viện âm mưu thương mại của riêng mình vì tôi không hài lòng với bất kỳ thứ gì có sẵn trên .NET.

2

gnuplot là một chương trình được duy trì tích cực được sử dụng rộng rãi trong cộng đồng khoa học.Các ô thông thường được tạo từ các tệp dữ liệu mà bạn có thể ghi ra trong chương trình C# của mình, nhưng cũng có thể gọi gnuplot thực thi từ C# và hiển thị hình ảnh được tạo trong một hộp hình C#.

+1

Có thư viện bản đồ gốc nào cho C# tương tự như gnuplot không? Tôi hơi do dự khi sử dụng một cái gì đó như thế này khi nó cần phải gọi các quá trình khác. – theGreenCabbage

38

Oxyplot mà tôi đề xuất và cũng có Live-Charts (xem cập nhật2).

Oxyplot có các gói cho WPF, Metro, Silverlight, Windows Forms, Avalonia UI, XWT. Bên cạnh đó đồ họa nó có thể xuất khẩu sang Svg, Pdf, OpenXml, vv Và nó thậm chí còn hỗ trợ Mono và Xamarin cho Android và IOS. Nó cũng tích cực phát triển.

* Cập nhật * Chuyển đến GitHub https://github.com/oxyplot/oxyplot

* Cập nhật 2 * Ngoài ra còn có một (ít nhất là đối với tôi) mã nguồn mở mới Net thư viện âm mưu gọi Live-Charts (github link)

Các lô khá tương tác. Thư viện hỗ trợ WPF, WinForms và UWP. Xamarin được lên kế hoạch. Thiết kế được thực hiện theo hướng các mẫu MV *.

1

Tôi chỉ muốn bổ sung khuyến nghị của MajesticRa là OxyPlot và chỉ ra cách OxyPlot có thể được sử dụng cho nhiều trường hợp vẽ đồ thị khác nhau. Phần mềm này là miễn phí và mã nguồn mở, rất được đánh bóng và cho phép sử dụng nhiều bản đồ 2D bình thường của Beyonce.

Tôi đã sử dụng OxyPlot cho một dự án không chính thống, nơi tôi hiển thị (trong WPF/C#) bản đồ (Robotic Occupancy Grid) mà tôi có thể phủ với LineSeries (Path Traveled) và PointSeries (Way Points). Sử dụng tính năng ImageAnnotation của OxyPlot tôi có thể hiển thị video 60Hz trong OxyPlot của mình, bằng cách cập nhật định kỳ ImageAnnotation theo chủ đề riêng của nó, trong khi ánh xạ hàng loạt điểm vượt qua video. Video nền và điểm thậm chí có thể mở rộng và có thể dịch được.

Hy vọng điều này hữu ích cho những người khác đang tìm kiếm để hiển thị các ô trên ảnh và video.