[Gtk-sharp-list] Good GTK# charting library, fully integrate with Monodevelop

Doug Blank doug.blank at gmail.com
Sat Apr 13 10:48:30 UTC 2013


On Fri, Apr 12, 2013 at 4:10 PM, Scott Stephens <stephens.js at gmail.com> wrote:
> In case the OP or any readers are still interested, I've now got a first
> pass at the Gtk# backend for Florence implemented. It's only tested on
> Windows at this point, and it's got one relatively major bug that I can't
> figure out, but of the examples I work with (adapted from the original NPlot
> demo) whatever's going on only seems to affect the case where there are two
> linked plots, which seems like a somewhat low-priority case.  I think it's
> usable as is.
>
> Thanks for chiming in Hywel, I adapted your work on NPlot to get my Gtk#
> backend up.  It helped a lot, as I only have minimal Gtk# experience.
>

Very nice! I just tried it on Linux, with Mono, using IronPython with
the following:

import clr
clr.AddReference("Florence")
clr.AddReference("Florence.Gtk")
import Florence
import System
plot = Florence.GtkSharp.ImperativeHost()
plot.Start()
x = System.Array[System.Double]([1.0, 2.0, 3.0 ])
y = System.Array[System.Double]([ 1.0, 2.0, 3.0 ])
z = System.Array[System.Double]([0.0, 2.0, 4.0 ])
plot.points(x, y)
plot.lines(x, z, title="Test Plot 2", x_label="X2", y_label="Y2")

Clicking on the graph (in the middle, and on legends) is fantastic,
and using it interactively from IronPython really turns this into a
powerful tool. (If you run this from Calico [1] (which will include
Florence shortly), the first three commands aren't necessary if you
put the DLLs in Calico/modules).

I'd be glad to fork on github, and suggest at least a couple of
additional comments. Thanks again!

-Doug

[1] - http://calicoproject.org/ - use Florence from a variety of
interactive languages, including Ruby, Python, Scheme, and more.

>
>
> On Fri, Mar 29, 2013 at 12:04 PM, Hywel Thomas <hywel.w.thomas at gmail.com>
> wrote:
>>
>> NPlot also came top of my list, but the project seems to have died since
>> it transferred over to svn and SourceForge.  I've also forked it for my own
>> use, and extended the Gtk# implementation to handle Interactions
>> (https://github.com/hwthomas/NPlot) to the same level as the Swf demo.
>> However, I haven't (yet) added any more documentation than in the original
>> NPlot, and there is currently no integration into the Gtk# designer either,
>> both of which were requirements of the original query.  My own preference
>> for a cross-platform toolkit is now Xwt, which already has an adequate
>> Drawing API, and I'm currently porting NPlot to Xwt  when time allows (also
>> on github).
>>
>> On 28/03/13 19:29, Scott Stephens wrote:
>>
>> I'm glad there's at least one other person in the universe who thinks the
>> idea is a good one :-)  If/when I get around to finishing the work I'll let
>> you know.  It's not on the active to-do list right now, partially because
>> there are some mono bugs that make my end goal impossible, even if I was to
>> finish the Florence part of it.  So I wouldn't count on this any time soon,
>> but I am still interested in the project and hope to finish it at some
>> point.
>>
>> On Thu, Mar 28, 2013 at 10:22 AM, Doug Blank <doug.blank at gmail.com> wrote:
>>>
>>> On Thu, Mar 28, 2013 at 10:14 AM, Scott Stephens <stephens.js at gmail.com>
>>> wrote:
>>> > I don't think there's a library that meets your criteria, at least not
>>> > a
>>> > free one.  I've conducted similar searches in the past and come up
>>> > empty.
>>> > To try to meet some of my needs I forked NPlot and started a new
>>> > project
>>> > which I call Florence (I told the NPlot creators what I was interested
>>> > in
>>> > doing, and they asked me to rebrand rather than do it under the NPlot
>>> > name).
>>> > You can find it here: https://github.com/scottstephens/Florence
>>> >
>>> > I've found the NPlot charting functionality to be sufficient, the two
>>> > capabilities that I wanted were to be able to write charting code that
>>> > could
>>> > work within either WinForms or Gtk# widgets, and to add an imperative
>>> > API
>>> > (so that it would be convenient to call plotting code from the C#
>>> > REPL).
>>> > Unfortunately, it's not even close to finished.  It works as well as
>>> > NPlot,
>>> > just with the addition of an imperative API, and with a lot of the code
>>> > more
>>> > cleanly separated between tookit-specific and toolkit-agnostic pieces
>>> > than
>>> > the NPlot code was.  But it still only works with WinForms, as I
>>> > haven't
>>> > implemented any of the Gtk# backends yet.  Anyway, not even close to
>>> > being a
>>> > polished solution to your problem, but if you're willing to put some
>>> > coding
>>> > effort into solving your problem, this might get you closer than
>>> > starting
>>> > from scratch.
>>>
>>> Thanks for the information on Florence! That is exactly what we are
>>> looking for, but with the Gtk backend. (We would use the imperative
>>> API from a variety of scripting languages, including IronPython,
>>> Scheme, Logo, Basic, Ruby, and more). We are stretched too thin at the
>>> moment to be able to help very much, but we'll keep that on our list
>>> to watch.
>>>
>>> -Doug
>>>
>>> > On Thu, Mar 28, 2013 at 7:00 AM,
>>> > <gtk-sharp-list-request at lists.ximian.com>
>>> > wrote:
>>> >>
>>> >> Date: Thu, 28 Mar 2013 04:29:00 -0700 (PDT)
>>> >> From: FromMidAges <siuksliu.statine at gmail.com>
>>> >> To: gtk-sharp-list at lists.ximian.com
>>> >> Subject: [Gtk-sharp-list] Good GTK# charting library,   fully
>>> >> integrate
>>> >>         with Monodevelop
>>> >> Message-ID: <1364470139870-4659168.post at n4.nabble.com>
>>> >> Content-Type: text/plain; charset=us-ascii
>>> >>
>>> >>
>>> >> Hello to all!
>>> >> I've searched over all Internet for good GTK# based charting library,
>>> >> which
>>> >> could be fully integrated to Monodevelop and his GUI designer.
>>> >> I've found ZedGraph, but it was poorly documented, and without
>>> >> integration
>>> >> to GUI designer. That is true for NPlot and NPlot.Gtk too.
>>> >> Could anybody recommend a library, which would meet all my
>>> >> requirements?
>>> >>
>>> >>
>>> >
>>> >
>>> > _______________________________________________
>>> > Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
>>> > http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
>>> >
>>
>>
>>
>>
>> _______________________________________________
>> Gtk-sharp-list maillist  -  Gtk-sharp-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
>>
>>
>


More information about the Gtk-sharp-list mailing list