图表问题

时间:2012-01-10 16:15:29

标签: c# asp.net charts

我在列图表上设置“公司目标”时遇到了一些问题。我这样做是一个折线图,但是这条线需要向左延伸更多,更正确。我已经尝试将x设置为我的柱形图开始之前但没有帮助,它仍然没有在y轴上启动并且将我的所有信息都移动了。这就是我得到的:

what I'm getting

这就是我想要的想法:

what I'm going for

我意识到我可能无法在那里获得个人目标,因为这是一点,但如果有人有想法......我全都耳朵......除了3D柱形图以及公司和个人目标背后前两个系列......尽管如此,但它不是我想要的外观。

代码:

int x = 0;

Chart1.Series.Add("currmonth");
Chart1.Series["currmonth"].ChartType = SeriesChartType.Column;
Chart1.Series["currmonth"].SmartLabelStyle.Enabled = true;
Chart1.Series.Add("prevmonth");
Chart1.Series["prevmonth"].ChartType = SeriesChartType.Column;
Chart1.Series["prevmonth"].SmartLabelStyle.Enabled = true;
Chart1.Series.Add("compgoal");
Chart1.Series["compgoal"].ChartType = SeriesChartType.Line;

Chart1.ChartAreas[0].AxisX.Minimum = 0; 
Chart1.ChartAreas[0].AxisX.Maximum = 5;

DataPoint dp3 = new DataPoint();
dp3.SetValueXY(0, 115);
dp3.BorderWidth = 3;
Chart1.Series["compgoal"].Points.Add(dp3);
DataPoint dp4 = new DataPoint();
dp4.SetValueXY(5, 115);
dp4.BorderWidth = 3;
Chart1.Series["compgoal"].Points.Add(dp4);

while (x < 4)
{
    /*DataPoint dp3 = new DataPoint();
    dp3.YValues = new double[] { Convert.ToDouble(115) };
    dp3.BorderWidth = 3;
    Chart1.Series["compgoal"].Points.Add(dp3);*/
    //---------------------------------------------------------------------------
    DataPoint dp = new DataPoint();
    dp.AxisLabel = username[x];
    dp.YValues = new double[] { Convert.ToDouble(average[x]) };
    dp.Label = average[x].ToString() + " || " + count[x];
    dp.LabelForeColor = Color.DarkGreen;
    dp.Font = new System.Drawing.Font(FontFamily.GenericSerif, 10, FontStyle.Bold);
    Chart1.Series["currmonth"].Points.Add(dp);
    //-----------------------------------
    DataPoint dp2 = new DataPoint();
    dp2.AxisLabel = username2[x];
    //dp.XValue = x;
    dp2.YValues = new double[] { Convert.ToDouble(average2[x]) };
    dp2.Label = average2[x].ToString() + " || " + count2[x];
    dp2.LabelForeColor = Color.Brown;
    dp2.Font = new System.Drawing.Font(FontFamily.GenericSerif, 10, FontStyle.Bold);
    Chart1.Series["prevmonth"].Points.Add(dp2);

    x++;
}

Chart1.Palette = ChartColorPalette.BrightPastel;
Chart1.Titles[0].Text = "Name";
Chart1.ChartAreas[0].AxisX.Title = ddlMonths.SelectedValue;
Chart1.ChartAreas[0].AxisY.Title = "$";
Chart1.Legends.Add(new Legend() { Name = "Legend" });
Chart1.Legends[0].Docking = Docking.Bottom;
Chart1.Series["currmonth"].Name = "Current Month";
Chart1.Series["prevmonth"].Name = "Previous Month";
Chart1.Series["compgoal"].Name = "Company Goal";
//-------------------------------------------------------------------------

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:0)

您应该可以通过在折线图系列上设置数据点的XY值来实现此目的,即:

dp.SetValueXY(xvalue,yvalue);

创建其中两个点,其中x是图表上显示的最小值,另一个是x是最大可能值。然后该线应该按照您的意愿绘制。

答案 1 :(得分:0)

使用了一条带状线...解决了问题