C# dotnet highchar数据点并不是每个记录都有
在MVC应用程序中,我使用的是Dotnet HighCharts。我能够在页面中呈现图表,但作为我的新手,有一件事并不像预期的那样。我没有得到数据点(小的弹出框,提供图形中某个点的详细信息)。我传递给图表的数据是由5000条记录组成的,但我并不是每个点都有数据点。以下是我的图表的显示: HighChart网站上有一个类似的演示,展示了每条记录的数据点 我的代码在下面,你能帮我指导一下吗。我非常感谢你的时间,分享和帮助 谢谢你的期待 下面的代码生成图表:C# dotnet highchar数据点并不是每个记录都有,c#,asp.net-mvc,highcharts,dotnethighcharts,C#,Asp.net Mvc,Highcharts,Dotnethighcharts,在MVC应用程序中,我使用的是Dotnet HighCharts。我能够在页面中呈现图表,但作为我的新手,有一件事并不像预期的那样。我没有得到数据点(小的弹出框,提供图形中某个点的详细信息)。我传递给图表的数据是由5000条记录组成的,但我并不是每个点都有数据点。以下是我的图表的显示: HighChart网站上有一个类似的演示,展示了每条记录的数据点 我的代码在下面,你能帮我指导一下吗。我非常感谢你的时间,分享和帮助 谢谢你的期待 下面的代码生成图表: private Highcharts G
private Highcharts GetChart(List<CurrencyConversion> conversions, DateTime dateFrom, DateTime dateTo)
{
Highcharts chart = null;
string currencyFrom, currencyTo;
if (conversions != null && conversions.Count() > 0)
{
object[][] data = conversions.Select(c => new object[] { c.LastUpdatedDate, c.Rate }).ToArray();
currencyFrom = conversions.Select(c => c.CurrencyFrom).FirstOrDefault();
currencyTo = conversions.Select(c => c.CurrencyTo).FirstOrDefault();
chart = new Highcharts("chart")
.SetOptions(new GlobalOptions { Global = new Global { UseUTC = false } })
.InitChart(new Chart { ZoomType = ZoomTypes.X, SpacingRight = 20 })
.SetTitle(new Title { Text = "" })
.SetSubtitle(new Subtitle { Text = "Click and drag in the plot area to zoom in" })
.SetXAxis(new XAxis
{
Type = AxisTypes.Datetime,
MinRange = 3600000,
Title = new XAxisTitle { Text = "" }
})
.SetYAxis(new YAxis
{
Title = new YAxisTitle { Text = "Exchange rate" },
StartOnTick = false,
EndOnTick = false,
Min = 0.1
})
.SetTooltip(new Tooltip { Shared = true })
.SetLegend(new Legend { Enabled = false })
.SetPlotOptions(new PlotOptions
{
Area = new PlotOptionsArea
{
FillColor = new BackColorOrGradient(new Gradient
{
LinearGradient = new[] { 0, 0, 0, 300 },
Stops = new object[,] { { 0, "rgb(116, 116, 116)" }, { 1, Color.LightSkyBlue } }
}),
LineWidth = 1,
Marker = new PlotOptionsAreaMarker
{
Enabled = false,
States = new PlotOptionsAreaMarkerStates
{
Hover = new PlotOptionsAreaMarkerStatesHover
{
Enabled = true,
Radius = 5
}
}
},
Shadow = false,
States = new PlotOptionsAreaStates { Hover = new PlotOptionsAreaStatesHover { LineWidth = 1 } },
PointInterval = 24 * 3600 * 1000,
AllowPointSelect = true, CropThreshold=10
//PointStart = new PointStart(startDate)
}
})
.SetSeries(new Series
{
Type = ChartTypes.Area,
Name = string.Format("{0} to {1}", currencyFrom, currencyTo), //graphHeading,
Data = new Data(data),
});
}
return chart;
}
private Highcharts GetChart(列表转换、日期时间日期从、日期时间日期到)
{
Highcharts图表=空;
字符串currencyFrom、currencyTo;
if(conversions!=null&&conversions.Count()>0)
{
对象[][]数据=转换。选择(c=>新对象[]{c.LastUpdateDate,c.Rate})。ToArray();
currencyFrom=conversions.Select(c=>c.currencyFrom).FirstOrDefault();
currencyTo=conversions.Select(c=>c.currencyTo.FirstOrDefault();
图表=新的高点图表(“图表”)
.SetOptions(新全局选项{Global=new Global{UseUTC=false})
.InitChart(新图表{ZoomType=ZoomTypes.X,SpacingRight=20})
.SetTitle(新标题{Text=”“})
.SetSubtitle(新副标题{Text=“单击并拖动绘图区域以放大”})
.SetXAxis(新XAxis)
{
类型=AxisTypes.Datetime,
最小范围=3600000,
Title=新的XAxisTitle{Text=”“}
})
.SetYAxis(新YAxis)
{
Title=new YAxisTitle{Text=“汇率”},
StartOnTick=false,
EndOnTick=false,
最小值=0.1
})
.SetTooltip(新工具提示{Shared=true})
.SetLegend(新的图例{Enabled=false})
.SetPlotOptions(新的绘图选项
{
Area=新绘图选项Area
{
FillColor=新的背景色或渐变色(新渐变色
{
LinearGradient=new[]{0,0,0,300},
停止=新对象[,]{0,“rgb(116,116,116)”},{1,Color.LightSkyBlue}
}),
线宽=1,
标记=新绘图选项区域标记
{
启用=错误,
状态=新绘图选项区域标记状态
{
悬停=新绘图选项区域标记状态清除器
{
启用=真,
半径=5
}
}
},
阴影=假,
状态=新绘图选项AreaState{Hover=新绘图选项AreaStateShover{LineWidth=1}},
点间隔=24*3600*1000,
AllowPointSelect=true,CropThreshold=10
//PointStart=新的PointStart(开始日期)
}
})
.SetSeries(新系列
{
类型=图表类型。面积,
Name=string.Format(“{0}到{1}”,currencyFrom,currencyTo),//graphHeading,
数据=新数据(数据),
});
}
收益表;
}
如果您使用highstock.js(从屏幕截图中,我注意到一个导航器),那么默认情况下会启用dataGroping。因此,如果禁用它,所有点都将被打印