Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am looking for Graph libraries for .net. Are there any out?
ps: I mean GRAPH libraries, not graphics nor charting libraries!
edit: What I mean is graphs, from graph theory:
(source: sourceforge.net)
I also need it to have drawing capabilities.
Use a combination of QuickGraph (GitHub, CodePlex) and Graph# for WPF (GitHub fork, CodePlex) - both top notch libraries. They work really well for me but the documentation for Graph# is almost non-existant.
I am working in the NDepend team and we switched from GraphViz to MsAgl (Microsoft Automatic Graph Layout) in september 2008. The MsAgl license allows commercial utilisation. Here are a few sample pictures of MsAgl graphs integrated in NDepend (everything is interactive, nodes are movable/selectable/removable/clickable, edges are editable/selectable/removable/clickable, the layout is zoomable, and also, while it could be cleaner the MsAgl API is clean enough to work with):
Though my previous post get deleted I'll try to give more complex answer on the question.
The topmost answer is not quite actual anymore as the Graph# library is strongly outdated.
I'll recommend to check the combination of GraphX and Quickgraph. GraphX as the rendering engine and Quickgraph as the graph management and math operation component.
GraphX library is coded for WPF 4.0 and METRO. It provides many features that Graph# lacks:
Improved rendering performance for large graphs
Edge routing and bundling support, many other edge options
Enhanced zoom control which supports Overview window and multiple vertices selection
Rich documentation and samples
Also GraphX supports all the original layout algorithms from Graph#.
There is QuickGraph, it works pretty well and has most of the basic algorithms.
Take a look at yWorks:
http://www.yworks.com/en/index.html
There aren't a massive amount of good libraries out there, from what I've seen.
You can use the NodeXL API from Microsoft Research at: http://www.codeplex.com/NodeXL but a similar question has been asked at: https://stackoverflow.com/questions/44090/do-you-know-any-graph-visualization-libraries-for-net/
Take a look at Satsuma. Written in C#, mainly graph algorithms, but there is some basic graph layout and drawing as well.
I haven't tried it yet but ran across an interesting offering from MS Research for visualizing directed graphs Microsoft Automatic Graph Layout.
Try using "directed graph" or "digraph" for search terms. I get a lot of hits.
Check out
http://quickgraph.codeplex.com/
They have support for visualization via DotViz and Glee.
For visualization, i'd also check out
http://flare.prefuse.org/
Though its flash, it seems very interesting, and they have at least tree visualization, though you may be able to coax some non-directed graphs out of it.
The C5 Generic Collection Library
for C# and CLI
Buddy I think this is what you need!
This article presents a Generic Graph
Library, 100% C#. This library is an
attempt to port the Boost Graph
Library (BGL) from C++ to C#.
We've used ZedGraph which is an Open Source project written in C#, so you can tweak it if you feel it is necessary. It served our needs which sound like they're very close to what you described. There's even a wiki site for the project with some pretty good samples.
Matlab has good support for graphing, and with a few lines of .NET you can call a .m file to display graphs. See Creating a graph or a plot from a C# console app, using Matlab?
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
Last week i searched for good free or opensource solutions and component for GIS (Geographical Information Systems) I founded some system but no one fill my requirements
SharpMap is very buggy software
Gmap.net is very slow
MapWindow have a very complex structure and is very buggy.
I founded uDIG but is in java, i need a solution in vb.net or c#.
Anyone know a good solution that fill my requirements or have alternatives, i accept solutions?
You are limiting yourself a lot by insisting on .NET. I don't know of anything other than SharpMap or MapWinGIS ActiveX (MapWindow). Here are some free, but not .NET, options for Windows desktop applications.
If you'd consider writing your standalone application in Python or C++:
Mapnik
QGIS
Or if you'd consider writing a plug-in or a customisation for an existing GIS:
GRASS can be customised in Python, Perl, Ruby...
QGIS can be customised in Python
I think that you've covered it already. There really aren't any production quality open source GIS project out there using C#. Most of the good work is being done in Java, C/C++ or Python these days. If you must use the .NET Framework then I think the best of the bunch is indeed SharpMap.
Failing that you need to look at commercial products from companies like http://www.esri.com. Of course, it also depends on what you need: web services, Windows Forms control, WPF, etc. In the past I've managed to whip up some C# that constructed the right XML to send to a Java server-based mapping engine, so you could look at something like GeoServer and build your own client. Obviously not what you want to get in to but I don't see that you have many options beyond the ones you've listed.
I would recommend to look in to MapAround
Have you checked out SharpMap? It's available on codeplex.
MapSurfer.NET framework might be a good option.
MapSurfer.NET is free, modern cartographic framework which is able to provide maps of superior cartographic quality. This framework supports a bunch spatial data formats (e.g., Shape files, PostgreSQL, OSM, etc.) and web services (e.g., CartoDB, Mapzen, etc.). Furthermore, its setup includes MapSurfer.NET Studio application which allows creating and editing map styles (analogue of TileMill). Its symbology is inspired by both OGC specifications and other similar toolkits such as MapServer, GeoServer or Mapnik.
We use Mapzania (http://www.mapzania.com).
The best thing about it is that you load it into existing web-applications via a NuGet package and then you get a bunch of GIS functionality.
It uses Leaflet as its front-end and it has JS library that makes it easy to do stuff to Leaflet.
It also has a nice MapStyler for creating and editing maps.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 8 years ago.
Improve this question
Can anyone recommend a free grid/graphing component for C#/.NET? I'm having a look at NPlot right now, but so far I'm finding it quite troublesome.
EDIT: I particularly need something that plugs into Windows Forms - I'm not doing ASP.NET, and don't really fancy reproducing my graph using Google's API every time I get a new data point (several times a second).
Thanks :-)
MS just released one if you are using 3.5 or you could use ZedGraph
EDIT: The Link is Just a ASP.NET demo they have a Windows Forms Release as well with DEMOS
Microsofts Chart Control
MS Chart Controls (VS tools) work with winforms too:
Microsoft Chart Controls for Microsoft
.NET Framework 3.5 will install new
assemblies that contain the ASP.NET
and Windows Forms Chart Controls.
I haven't had time to use it yet, so I don't know whether it supports charting/plotting (rather than data-graphing).
I can highly recommend ZedGraph (http://zedgraph.org/wiki/index.php?title=Main_Page). It was very easy to configure from my experience (and well documented), not to mention that it seems really quite versatile.
Zedgraph seems to be a good tool to plot 2d lines anc histograms. Is there a c# library which allow to visualize 2D data (f[x,y]) as the matlab function pcolor or imagesc ?
Take a look at Dynamic Data Display on CodePlex. It's a pretty rich library for WPF with good documentation and good sample code.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am working on a project for my company, and I need to integrate some graphs of different types and average complexity to C# in the process of studying stock markets. I found this free library on the Internet, ZedGraph. If you came across it, do you recommend using it? And how well is it supported?
I can recommend ZedGraph. I have been using it with great
success for several years in MSQuant, for most plots: mass
spectrum display, recalibration error plots, LC peak plots,
quantitation profiles and others.
Here are some screen-shots from MSQuant where ZedGraph has
been used:
Scatter plot, with trendline
X-Y plot with the actual data points shown, line connection data points
Sticks plot, with overlayed annotation (TextBoxes, in fact)
Several plots in the same window, types as in 2. and 3. (the two plots in the bottom half)
Closer look at type 2.
Collage, type 2. and code in Visual Studio
The source code that is behind the first plot can be found in Source code for MSQuant: frmRecalibrationVisualisation.vb, MSQuant/msquant/src/GUI/forms/frmRecalibrationVisualisation.vb..
In contrast to many other charting libraries, ZedGraph can
also be used for scientific/math oriented plots/charts (for example,
scatter plots) and not only for business-type plots/charts.
Stock market applications may also need scatter plots.
In ZedGraph, there is built-in support for the user to zoom
in (infinite) and zoom out, pan (drag while holding down the
Ctrl key), save the plot to a file or copy it to the
clipboard.
There is one thing I am missing in ZedGraph: the ability for
the user to select items in the plot in order to perform
some action on those selected items (for example, computing some
number, accepting them as verified or marking them as
outliers to the application program).
Don't be put off by the state of ZedGraph's development.
ZedGraph is mature, is of very high quality, and can be used
as-is. There is supposed to be a new team behind its further
development.
ZedGraph does not appear to be supported by the original developers anymore. However, you can find it as part of other projects where updates have been made.
For example, per this discussion on a ZedGraph project discussion list:
So I highly optimized ZedGraph for all
the curves, and objects. Basically, I
optimized how it uses GDI and
specifically made it only draw objects
that will fit in the chart.
So it scrolls and zooms now extremely
efficiently even if I have many
millions of objects on the chart. Plus
it users nearly zero CPU when it's
running in real-time as slower speeds
for tracking financial charts.
I fixed a few defects also.
You can find a fork of the repo with the changes here.
I strongly recommend the Microsoft Chart Controls For .NET Framework 3.5 over ZedGraph.
Do you mean Zedgraph rather than Zgraph? Zedgraph's homepage is here and is described in a CodeProject article here.
If you are talking about Zedgraph I can recommend it, I have relatively little experience in C# but quite a lot in data visualization. I found it straightforward to get Zedgraph up and running and producing good-looking charts. Zedgraph is very good for 2D charting, I'm still looking for an equivalent for 3D plotting.
I hate to be a killjoy, but I wouldn't recommend ZedGraph.
I was working with it a couple of years ago and noticed that the support was provided by a single enthusiast that seemed abused by everyone wanting his freeware with no compensation or contributions. It's a curse faced by a lot of FOSS authors.
It doesn't look like the software has been updated in over a year now and the help forum is full of queries with no responses. It looks like the author lost interest and walked.
If you use ZedGraph, do it because you want to maintain the underlying code and because you want to contribute back to the user/developer community. If you have no interest in contributing, and you can't maintain it for yourself, be prepared for things that don't work and simply never will. An enterprising company could sponsor the development of the software and offer for-fee support, but you need to decide for yourself if it's good enough to do that and if there is a real revenue model.
Although development seems to have stalled, WPF Dynamic Data Display looked promising.
ZedGraph does not support 3D graphing, such as Surface Chart: Implied Vol Surface
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
C# seems to show some promise for scientific computing, but I found very little about one plotting 2D graphs, which is very important both for science student and scientists.
Is there a reliable, free, way to create publication quality 2D plot with C# ? And the capacity to save to several formats (png, eps, ...). Something similar to Python's matplotlib ?
There is OxyPlot which I recommend. It has packages for WPF, Metro, Silverlight, Windows Forms, Avalonia UI, XWT. Besides graphics it can export to SVG, PDF, Open XML, etc. And it even supports Mono and Xamarin for Android and iOS. It is actively developed too.
There is also a new (at least for me) open source .NET plotting library called Live-Charts. The plots are pretty interactive. Library suports WPF, WinForms and UWP. Xamarin is planned. The design is made towards MV* patterns.
But #Paweł Audionysos suggests not such a good performance of Live-Charts WPF.
ZedGraph is a good choice.
See Samples Environment for Microsoft Chart Controls:
The samples environment for Microsoft Chart Controls for .NET Framework contains over 200 samples for both ASP.NET and Windows Forms. The samples cover every major feature in Chart Controls for .NET Framework. They enable you to see the Chart controls in action as well as use the code as templates for your own web and windows applications.
Seems to be more business oriented, but may be of some value to science students and scientists.
gnuplot is an actively maintained program widely used in the scientific community. Normally plots are generated from data files which you can write out in your C# program, but it is also possible to call the gnuplot executable from C# and display the generated image in a C# picture box.
I started using the new ASP.NET Chart control a few days ago, and it's absolutely amazing in its capabilities.
Here is the link.
EDIT: This is obviously only if you are using ASP.NET. Not sure about WinForms.
I just wanted to supplement MajesticRa's recommendation of OxyPlot, and point out how OxyPlot can be used for a variety of plotting cases. The software is free and Open-Source, very polished, and allows for a variety of uses beyon normal 2D mapping.
I've been using OxyPlot for an unorthodox project, where I display (in WPF/C#) a map (Robotic Occupancy Grid) which I could overlay with LineSeries (Path Traveled) and PointSeries (Way Points). Using the OxyPlot ImageAnnotation feature I am able to display 60Hz Video within my OxyPlot, by periodically updating the ImageAnnotation on its own thread, while mapping Series of points overtop the video. The background video and points are even scalable and translatable.
Hopefully this is helpful for other looking to display plots overtop of images and videos.
NPlot is a pretty good simple open source 2D plotting API. Unfortunately, the web site is down. I don't know if this is just temporary or not. I haven't heard of any bad news. It may come back up.
http://www.nplot.com
Here is an article describing it:
https://web.archive.org/web/20210612110405/https://aspnet.4guysfromrolla.com/articles/072507-1.aspx
The previous article uses VB.NET, but obviously this will work with C#.
Again, not sure why nplot's site is not currently working but it is a somewhat popular plotting API that I've used in the past. I post it for your information and in case of the likely event nplot will be back up soon. :)
Edit:
Thanks to a Hosam Aly, it looks like the SourceForge project can still be accessed here:
http://sourceforge.net/projects/nplot
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
I'm trying to write a software synthesizer that recreates the sounds made by classic synthesizers like the Moog and the DX7. Does anyone know of any code resources for something like this? Thanks.
There are an awful lot of C/C++ libraries out there, most no longer updated. There's not much for C#, but I have seen a couple. I haven't really used any of them in anger, so I can't give any recommendations.
I would start with Harmony Central and see if you find anything of use there.
Alternatively, a search for analog synthesis on sourceforge.net has plenty of results.
CCRMA at Stanford can be a good resource for audio software. The Synthesis ToolKit in C++ (STK) looks like it could help you out.
The Moog and the Yamaha DX7 are drastically different. The DX7 uses FM synthesis, which is severely strange. Very different from the usual VCO/VCA/VCF analogs like the Moog.
For a long time, Yamaha litigated to defend its FM patents, but they have all expired by now, I believe. Casio's phase distortion was similar to Yamaha's FM, and managed to avoid Yamaha's wrath (so far as I know).
I'd start by picking one or the other. Virtual Analog (emulating analog synths) is all the rage since the Nord Lead and the Access Virus showed up. And a lot easier to contemplate. So I'd go that way if you want to walk with the hip crowd.
Start with good band-limited oscillators, make an envelope generator, do a filter. For inspiration, check out Welsh's Synthesizer Cookbook to see how all kinds of sounds can be make with a two-oscillator synth. I'd start by implementing the minimum features needed for those patches.
FM and PD are wild. If you go that route, it's all about chaining enough FM operators together in interesting configurations to get a spectrum of interesting sounds. Warning: it's a lot of work to avoid aliasing in FM.
Synthmaker and SynthEdit will generate VST code for you. SynthEdit definitely outputs the uncompiled C++ source files, and is free.
http://www.synthedit.com/
http://synthmaker.co.uk/
your best bet is to check out the developer forums over at KvR. They will be able to point you in the direction of the best open source DSP/synthesis engines as well as some open source VSTi plugins that you can take inspiration from. It will all be in C / C++ though. There is only the most basic of audio synthesis available in managed code at the moment.
The musicdsp website also has a great synthesis library. Lots of sample code in C/C++ on how to do things.
Look at the answers to the Python Music Library question. While the question says "Python", Python is built on C. So anything usable from Python will have a C library, also.
I wrote a simple synth library as part of an iPhone app. Perhaps it would work for your synth needs as well. Perhaps not.
http://mobilesynth.googlecode.com/svn/trunk/mobilesynth/Classes/synth/
These tutorials (especially from part 8 onwards) cover programming all the parts of a classic subtractive synth in C++: Oscillators, envelopes, filter and LFO.
Chuck is the best I know of, but its C++ like, not C++.
I've had some success with the BASS library, but it's .Net support was a little crude when last I played with it. It mostly low-level stream encoding and such, but it does have support for some DX8 effects.
There are two articles on CodeProject you might want to check out. Leslie Stanford created a Synth toolkit in C# (as far as I know it's completely managed).
C# Synth Toolkit - Part I
C# Synth Toolkit - Part II
Also, I just found this StackOverflow Question which has some good links, though it's Java related