SciSharp / Plot.NET

.NET wrapper of plotly.js for ICSharpCore
Apache License 2.0
63 stars 19 forks source link

How does this project compare/contrast with XPlot? #1

Open eerhardt opened 5 years ago

eerhardt commented 5 years ago

See https://github.com/fslaborg/XPlot. It looks like this is a duplicate of that work. XPlot also has wrappers for GoogleCharts and a D3.js network graph.

Why not contribute to that library instead of building a duplicate?

kerryjiang commented 5 years ago

It is F# project. Is it good for C# projects? Anyway, XPlot looks really cool.

Oceania2018 commented 5 years ago

@eerhardt Does XPlot.Plotly generate javascript? We need a plotting function that interacts with the front-end user and be able to present the real-time change for the loss function. We haven't found this library when we do Plot.NET. @kerryjiang XPlot.Plotly might be a shortcut.

eerhardt commented 5 years ago

It is F# project. Is it good for C# projects?

It works well for C#. And in places where it doesn't, I think we can contribute to XPlot to make it great for both F# and C# at the same time.

Does XPlot.Plotly generate javascript?

Yes it does. See https://github.com/fslaborg/XPlot/blob/master/src/XPlot.Plotly/Main.fs#L93-L117.

FYI - I have been using XPlot.Plotly together with the Jupyter kernel that dotnet/try is building plus the dotnet/corefxlab DataFrame library that @pgovind is building to enable visualizations in a C# Juypter notebook. For example, I'm able to do:

image

I see there is also a Juypter kernel project in SciSharp - https://github.com/SciSharp/ICSharpCore. What do you think about combining forces with the dotnet/try effort to make one really great Jupyter experience?

/cc @jonsequitur @colombod

kerryjiang commented 5 years ago

Just noticed there is another Jupyter extension for C#: Microsoft.DotNet.Interactive.Jupyter - https://github.com/dotnet/try/tree/master/Microsoft.DotNet.Interactive.Jupyter

I will take a look both of them.

zyzhu commented 4 years ago

I use GetInlineHtml() to get html if needed. https://github.com/fslaborg/XPlot/blob/1abb20223a016a76a341b23166b2b71fcad4ec51/src/XPlot.Plotly/Main.fs#L84

XPlot already works fairly well on IfSharp Jupyter notebook. I use it on various internal research notebooks.

Oceania2018 commented 4 years ago

@eerhardt We really want to work with ML.NET to create a great user experience product. You probably know that our team is tiny and part-time to contribute to SciSharp. It may not be possible to contribute too much to dotnet/try at this time.

What can we do now? Discard this project and guide the users to dotnet/try? @codemzs

eerhardt commented 4 years ago

You probably know that our team is tiny and part-time to contribute to SciSharp. It may not be possible to contribute too much to dotnet/try at this time.

That's no problem at all. I totally understand having a finite set of resources. And that is at the heart of this issue - we all only have so much time in the day, why spend it duplicating effort?

What can we do now? Discard this project and guide the users to dotnet/try?

That's totally up to you. If you want to continue this project and ICSharpCore, you can.

But just know that we would gladly welcome any help/contributions in dotnet/try, and I hope the owners over at https://github.com/fslaborg/XPlot feel the same for XPlot.

My main goal is to have a great experience for .NET devs. And I think by combining our efforts we will make a better experience for them.

zyzhu commented 4 years ago

Though I'm not the maintainer of XPlot, I think pull requests to XPlot shall be greatly appreciated.

There are quite a list of pending issues to be solved there such as XPlot.D3 and subplots.

Wrapper functions to work with new DataFrame type similar to XPlot.GoogleCharts.Deedle will be very productive to users too. I do plan to add another wrapper as XPlot.Plotly.Deedle when I have some down time.

colombod commented 4 years ago

As @eerhardt says we are very happy to welcome contribution from project like yours as you all have experience with the core technology and understand the user space. Having your help in extending the core engine of dotnet/try would be amazing. Also we are designing extension points ad it would be great to start building a set of great experiences for ML users

kerryjiang commented 4 years ago

I will take a close look at dotnet/try to see if if the TensorFlow.NET and ML.NET can run inside it.