C# 图表多个系列不同长度生成重复的x轴
请看我的web应用程序ASP.NET 4.0中的这张图片。 正如你所能看到的,这些线有不同的长度。还有重复的x轴输入 蓝色系列缺少数据点,黄色系列没有。 问题1: 如何对齐它们,使x轴保持不变。目前我正在做这件事。让线一样长? 问题2:是否有一种方法可以使图表具有交互性,以便您可以使用ASP.NET将光标放在某一行上查看该点的数据C# 图表多个系列不同长度生成重复的x轴,c#,asp.net,charts,C#,Asp.net,Charts,请看我的web应用程序ASP.NET 4.0中的这张图片。 正如你所能看到的,这些线有不同的长度。还有重复的x轴输入 蓝色系列缺少数据点,黄色系列没有。 问题1: 如何对齐它们,使x轴保持不变。目前我正在做这件事。让线一样长? 问题2:是否有一种方法可以使图表具有交互性,以便您可以使用ASP.NET将光标放在某一行上查看该点的数据 int amountofrows = Convert.ToInt32(dt.Rows[0]["antal"].ToString()); for (int i =
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;
int-amountofrows=Convert.ToInt32(dt.Rows[0][“antal”].ToString());
for(int i=0;i
这就是答案
谢谢你指出JBL
foreach (System.Web.UI.DataVisualization.Charting.Series serien in Chart1.Series)
{
foreach(System.Web.UI.DataVisualization.Charting.DataPoint dataPoint in serien.Points)
{
if (dataPoint.YValues[0] == 0)
{
dataPoint.IsEmpty = true;
}
}
serien.Sort(PointSortOrder.Ascending,sortBy:("X"));
}
关于你的第一个问题,我想你将不得不使用空数据点。请参阅:关于您的第二个问题,请参阅下面的ImageMap选项:我确实使用空点,Chart1.DataManipulator.InsertEmptyPoints(1,IntervalType.Days,serieName);对于问题2,感谢我一直在寻找的东西;)我必须承认,我从未成功地使用DataManipular插入空数据点(这里我猜DataManipular与您的x字符串不匹配),也许您应该尝试手动插入数据点,正如我在第一篇评论中所发布的那样