我有一个二维数组的对象,我将其传递到我的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
},
});
其中示例数组由上面的数字列表组成。
答案 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
},
});