XPlot in a C# .NET Console App (not a jupyter notebook)
Hey, Great work on XPlot.
Any plans to support XPlot in a C# Console App (not a jupyter notebook)? I get a plot window, with the following code, but no data is drawn.
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using Microsoft.ML;
using Microsoft.ML.AutoML;
using Microsoft.ML.Data;
using Microsoft.ML.Featurizers;
using Tensorflow;
using XPlot.Plotly;
namespace BottleRocketClassify {
internal static class Program {
public static class ModelBuilder {
public static void Run() {
var mlContext = new MLContext(seed: 1);
var trainDataView = mlContext.Data.LoadFromTextFile<ModelInput>(
path: @"../../../data/train.csv",
hasHeader: true,
separatorChar: ',');
int numberOfRows = 1000;
var boxRatio =
trainDataView.GetColumn<float>("BoxRatio").Take(numberOfRows).ToArray();
var data = boxRatio.Cast<float>();
var chart = new PlotlyChart();
Chart.Bar(data);
Chart.Show(chart);
}
}
}
}
Charles
Hi CBrauer, use of XPlot within C# console apps should certainly be supported. Rather than calling Chart.Show on your newly constructed PlotlyChart, please try the following instead:
Chart.Bar(data).Show();
As a minimal test, the following could be used:
using System.Linq;
using XPlot.Plotly;
namespace XPlotTest
{
class Program
{
static void Main(string[] args)
{
var data = Enumerable.Range(0,100).Select(v => v+.0);
Chart.Bar(data).Show();
}
}
}
This is to replace Program.cs generated using:
dotnet new console -n XPlotTest
cd XPlotTest
dotnet add package XPlot.Plotly
dotnet add package FSharp.Core
All seems fine on my machine (TM)!
as a note i had to also install newtonsoft json, but other than that this worked perfectly!
Hey @malisimo , thx for the answer! Could you maybe provide a C# syntax example on how to draw a line chart, containing two data series?
var data = list1.Zip(list2, (a,b) => Tuple.Create(a,b)); Chart.Line<int,int>(data).Show();
This syntax only shows one line...