图表多个系列不同长度生成重复x轴 [英] Chart Multiple series different length generate duplicate x axis

查看:227
本文介绍了图表多个系列不同长度生成重复x轴的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从我的web应用程序ASP.NET 4.0看这张图片。



你可以看到线有不同的长度。也有重复的x轴输入。



蓝色系列有一个缺失的数据点,黄色没有。
问题1:
如何对齐它们,使x轴保持不变。目前im这样做。并使线条等长?
问题2:是否有一种方法使图表具有交互性,以便您可以使用ASP.NET从某一点保持光标在该行上查看数据?

  int amountofrows = Convert.ToInt32(dt.Rows [0] [antal]。ToString()); 

for(int i = 0; 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(dtRows中的DataRow dr)
{
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;


解决方案

这是答案!

$ b感谢您指出JBL!

  foreach(System.Web.UI.DataVisualization。 Charting.Series serie 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));
}


Look at this picture from my web application ASP.NET 4.0.

As you can se the lines have a different length. Also there is duplicate x axis entry.

The blue serie has a missing datapoint, the yellow does not. Question 1: How do I align them so the x- axis stays the same. Currently im doing this. And make the lines equally long? Question 2: Is there a way to make the chart interactive so that you can some and hold the cursor on the line to see data from that point, using 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;

解决方案

This was the answer!

Thanks for pointing that out 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"));
     }

这篇关于图表多个系列不同长度生成重复x轴的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆