0

我有一个二维对象数组,我将它们传递给我的 seriesSet 以创建柱形图,一列是百分比,这是我想在图表上看到的,而另一列我只想在工具提示中显示.

你们中的任何一个highcharts天才都可以想到我可以做到这一点的方法吗?例如,它看起来像这样

{ 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 周内对这个工作项目感到困惑,因此感谢您提供任何帮助

编辑:澄清一下,当我传入一个仅由百分比组成的一维对象数组时,图表会按照我想要的方式绘制,然后在我包含第二组(计数)时中断

所以我设置我的 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
    }, 
});

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

4

1 回答 1

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]);

从环顾四周(像这里),您似乎应该将 a 传递Object[]Dataso 替换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
        }, 

    });
于 2016-07-25T13:56:19.650 回答