DotNet Highcharts - 如何只使用二维数组的第一列作为数据
DotNetHighcharts - How to only use first column of 2d array as Data
我有一个二维对象数组,我将它们传递到我的 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 周的时间来解决这个工作项目,因此感谢您的帮助
编辑:
澄清一下,当我传入一个仅包含百分比的一维对象数组时,该图按照我想要的方式绘制,然后在我包含第二组(计数)时中断
所以我像这样设置我的 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
},
});
其中示例数组由上面的数字列表组成。
我不确定我是否理解正确,但如果您想要的是获取此集合中所有第一项的集合,然后获取第二项的另一个集合,那么:
// 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
},
});
我有一个二维对象数组,我将它们传递到我的 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 周的时间来解决这个工作项目,因此感谢您的帮助
编辑: 澄清一下,当我传入一个仅包含百分比的一维对象数组时,该图按照我想要的方式绘制,然后在我包含第二组(计数)时中断
所以我像这样设置我的 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
},
});
其中示例数组由上面的数字列表组成。
我不确定我是否理解正确,但如果您想要的是获取此集合中所有第一项的集合,然后获取第二项的另一个集合,那么:
// 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
},
});