DotNetHighcharts - 如何仅使用2d数组的第一列作为数据

时间:2016-07-25 13:53:07

标签: c# arrays highcharts dotnethighcharts

我有一个二维数组的对象,我将其传递到我的seriesSet中以创建一个列图,一列是一个百分比,这就是我想要看到的图,而另一个我只想显示在工具提示中。

你们中任何一位高级天才能想到我能做到这一点的方式吗?例如它看起来像这样

{ 100, 20 }
{ 100, 20 }
{ 80 , 16 }
{ 80 , 16 }
{ 40 , 8  }
{ 40 , 8  }
{ 20 , 4  }
  ...

我现在知道如何使用'this.x / this.y / this.point.x'来引用SetToolTip Formatter中的每一个,这是因为我被困了很长一段时间才尝试这样做。但现在我只想用第一组(100,80,40,20)来绘制图形,其中第二组只应用于工具提示。

在2周内对这个工作项目感到困惑,所以感谢任何帮助

编辑: 为了澄清,当我传入仅包含百分比的1D对象数组时,图形绘制为我想要的,然后当我包含第二组(计数)时断开

所以我按照这样设置我的seriesData:

List<DotNet.Highcharts.Options.Series> seriesSet = new List<DotNet.Highcharts.Options.Series>();
seriesSet.Add(new DotNet.Highcharts.Options.Series
{

    Type = chartType,               
    Name = "ExampleArray",
    Data = new DotNet.Highcharts.Helpers.Data(ExampleArray),
    Color = tarColor,
    PlotOptionsColumn = new DotNet.Highcharts.Options.PlotOptionsColumn
    {
        PointPadding = -0.1
    }, 
});

其中示例数组由上面的数字列表组成。

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解正确,但如果你想要的是收集这个集合中所有第一个项目的集合,然后是第二个项目,那么:

// Remove any item that doesn't have at least these two wanted values
items = items.Where(item => item.Count >= 1); 

// Select the sub-collection you need
var percentages = items.Select(item => item[0]);
var tooltips = items.Select(item => item[1]);

从环顾四周(like here)看来,您应该将Object[]传递给Data,因此请将ExampleArray替换为:

items.Select(item => (object)item[0]);
    seriesSet.Add(new DotNet.Highcharts.Options.Series
    {

        Type = chartType,
        //Name = "Targeted_" + Convert.ToString(tarCount.Count()),                
        Name = "Targeted",
        Data = nnew DotNet.Highcharts.Helpers.Data((object[])targeted.Cast<object[]>()
                                             .Select(item => (object)item[0])),
        Color = tarColor,
        PlotOptionsColumn = new DotNet.Highcharts.Options.PlotOptionsColumn
        {
            PointPadding = -0.1
        }, 

    });