我在列图表上设置“公司目标”时遇到了一些问题。我这样做是一个折线图,但是这条线需要向左延伸更多,更正确。我已经尝试将x设置为我的柱形图开始之前但没有帮助,它仍然没有在y轴上启动并且将我的所有信息都移动了。这就是我得到的:
这就是我想要的想法:
我意识到我可能无法在那里获得个人目标,因为这是一点,但如果有人有想法......我全都耳朵......除了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";
//-------------------------------------------------------------------------
任何帮助表示赞赏!
答案 0 :(得分:0)
您应该可以通过在折线图系列上设置数据点的XY值来实现此目的,即:
dp.SetValueXY(xvalue,yvalue);
创建其中两个点,其中x是图表上显示的最小值,另一个是x是最大可能值。然后该线应该按照您的意愿绘制。
答案 1 :(得分:0)
使用了一条带状线...解决了问题