您好我想在我的ASP.NET MVC 3项目中呈现一个不同距离值的图表。因此我使用字符串表示xCords和浮点数用于yCords:
public FileContentResult CreateChart()
{
string[] xCords; float[] yCords;
[... "fill xCords an yCords" ...]
Chart bytes = new Chart(width: 800, height: 400)
.AddSeries(
chartType: "line",
xValue: xCords,
yValues: yCords
);
return File(bytes.GetBytes("png"), "image/png");
}
问题是所有值之间的距离相同。 所以你几乎可以把它命名为条形图而不是点图: 我可以想象原因是x值的类型字符串,但我不知道 如何解决?
编辑:当我将xCords的类型更改为DateTime时,如何生成xCords:
xCords = new DateTime[stockAquires.Count];
{
foreach (StockAquire stockAquire in stockAquires)
{
xCords[stockAquires.IndexOf(stockAquire)] = stockAquire.RatingTime;
}
}
StockAquire包括作为一个属性:RatingTime
stockAquires包含许多类型为StockAquire的条目
答案 0 :(得分:0)
要在轴中使用DateTime,您需要做两件事:
将轴的数据类型设置为DateTime
。
使用DateTime
将系列中的值从double
转换为ToOADate
。
所以您的日期填充代码变为:
double[] xCords;
xCords = new double[stockAquires.Count];
{
foreach (StockAquire stockAquire in stockAquires)
{
xCords[stockAquires.IndexOf(stockAquire)] = stockAquire.RatingTime.ToOADate();
}
}
然后在创建图表后,您需要显式设置x轴的数据类型:
bytes.Series[0].XValueType = ChartValueType.DateTime;
有关详细信息,请参阅this article。