ASP.NET图表 - Y值不从0开始
问题描述:
我正在使用从DataTable创建的asp.net中的图表。基本上,我有一个数据表是这样的:ASP.NET图表 - Y值不从0开始
所以,我想在我的图表是每个differente位置一列,并为每个diferent型我想有一个的“部分”列,这意味着我希望每个地点都有一个专栏。
我已成功地做这样的事情,但并不完全,我想什么:
现在,我会尽力解释我的代码。
首先,我在数据表后,对每个不同的位置,我选择了行添加不同的地点串
string loc = "";
for (int i = 0; i < dtTipos.Rows.Count; i++)
{
if (loc != dtTipos.Rows[i]["Location"].ToString())
listaLocais.Add(dtTipos.Rows[i]["Location"].ToString());
loc = dtTipos.Rows[i]["Location"].ToString();
}
的列表中相应的位置,并创造了一系列针对他们每个人。我继续创建与Y = 0和一个一个点与Y =总
for (int i = 0; i < listaLocais.Count; i++)
{
DataRow[] lRow = dtTipos.Select("Location = '" + listaLocais[i] + "'");
foreach (DataRow dr in lRow)
{
string serie = dr["Location"].ToString().Substring(0, 2) + "_" + dr["Type"].ToString() + " - " + dr["Total"].ToString();
Series s = new Series();
s.Name = serie;
s.Label = dr["Location"].ToString();
s.ChartType = SeriesChartType.StackedColumn;
chartTipo1.Series.Add(s);
s.Points.AddXY(i + 1, 0);
s.Points[0].Label = " ";
s.Points.AddXY(i + 1,Convert.ToInt32(dr["Total"].ToString()));
s.Points[1].Label = " ";// dtTipos.Rows[i]["Total"].ToString();
}
}
的事情是:我想是因为我创造的每一行系列,每次我用diferent列,y轴开始从我离开的地方。
有没有什么办法可以让这个工作? 我会感谢任何帮助。
答
您将在同一个循环中添加您的系列和数据点。首先添加您的系列,那么你的数据点:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new MyDataTable();
//first add your series
foreach (DataRow row in dt.DefaultView.ToTable(true, new string[] { "Type" }).Rows)
{
Series series = new Series();
series.Name = (string)row["Type"];
series.ChartType = SeriesChartType.StackedColumn;
Chart1.Series.Add(series);
}
// then add your points;
foreach (DataRow row in dt.Rows)
Chart1.Series[(string)row["Type"]].Points.AddXY(row["Location"], new object[] { row["Total"] });
}
}
我不能相信这是这么简单。但是,现在又遇到了另一个问题。并非所有地点都出现在图表中(我有6个地点,但只有4个出现)。这是否由于在遗漏位置重复某些类型而引起的? –
为了给你一个明确的答案,你必须发布[MCVE](http://stackoverflow.com/help/mcve),以便人们可以重现你的具体问题。如果我的帖子解决了您当前的问题,请记住将其标记为已接受,然后发布新问题与您的新问题,但请确保您知道如何按照上面的链接中所述提出正确的问题。 – jsanalytics
我很难将信息放在正确的列中,它不断混淆 - 错误的值将会出现在错误的位置。 我应该为此提出另一个问题或编辑此问题? –