【发布时间】:2012-12-07 04:16:28
【问题描述】:
看看这张来自我的 Web 应用程序 ASP.NET 4.0 的图片。
如您所见,线条的长度不同。还有重复的 x 轴条目。
蓝色系列缺少数据点,黄色则没有。 问题一: 如何对齐它们以使 x 轴保持不变。目前我正在这样做。并使线条同样长? 问题 2:有没有一种方法可以使图表具有交互性,以便您可以使用 ASP.NET 将光标悬停在线上查看该点的数据?
int amountofrows = Convert.ToInt32(dt.Rows[0]["antal"].ToString());
for (int i = 0; i < amountofrows; i++)
{
List<string> xvals = new List<string>();
List<decimal> yvals = new List<decimal>();
string serieName = dt.Rows[i]["doman_namn"].ToString();
Chart1.Series.Add(serieName);
Chart1.Series[i].ChartType = SeriesChartType.Line;
foreach (DataRow dr in dt.Rows)
{
try
{
if (String.Equals(serieName, dr["doman_namn"].ToString(), StringComparison.Ordinal))
{
xvals.Add(dr["ranking_date"].ToString());
yvals.Add(Convert.ToDecimal(dr["ranking_position"].ToString()));
}
}
catch (Exception)
{
throw new InvalidOperationException("Diagrammet kunde inte ritas upp");
}
}
try
{
Chart1.Series[serieName].XValueType = ChartValueType.String;
Chart1.Series[serieName].YValueType = ChartValueType.Auto;
Chart1.Series[serieName].Points.DataBindXY(xvals.ToArray(), yvals.ToArray());
Chart1.DataManipulator.InsertEmptyPoints(1, IntervalType.Days, serieName);
}
catch (Exception ex)
{
throw new InvalidOperationException(ex.Message);
}
}
Chart1.DataBind();
Chart1.Visible = true;
【问题讨论】:
-
关于您的第一个问题,我想您将不得不使用空数据点。见:stackoverflow.com/q/12839770/1236044
-
关于您的第二个问题,请参阅 ImageMap 选项:msdn.microsoft.com/en-us/library/dd456682.aspx
-
我确实使用空点,Chart1.DataManipulator.InsertEmptyPoints(1, IntervalType.Days, serieName);对于问题 2,感谢我正在寻找的东西 ;)
-
我必须承认我从来没有成功使用 DataManipulator 插入空 DataPoints(在这里我猜 DataManipulator 与你的 x 字符串不匹配)也许你应该尝试手动插入我发布的 DataPoints我的第一条评论