Проблемы с графиком - PullRequest
       3

Проблемы с графиком

2 голосов
/ 10 января 2012

У меня возникли проблемы с размещением "цели компании" на моем столбчатом графике. Я делаю это в виде линейного графика, но линия должна расширяться влево и вправо. Я пытался установить x до того, где начинается моя столбцовая диаграмма, но это не помогает, она все еще не начинается по оси y и сдвигает всю мою информацию. вот что я получаю:

what I'm getting

и вот такая идея, к которой я стремлюсь:

what I'm going for

Я понимаю, что, вероятно, я не смогу достичь отдельных целей, потому что это одно очко, но если у кого-то есть идея ... У меня все уши ... кроме диаграммы в столбце 3D с компанией и отдельными целями первые 2 серии .. уже, хотя, но это не тот взгляд, который я собираюсь.

Код:

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 голосов
/ 11 января 2012

использовал полоску ... решил проблему

0 голосов
/ 10 января 2012

Этого можно добиться, установив значение XY для точки данных в серии линейных диаграмм, т. Е.

dp.SetValueXY(xvalue,yvalue);

создайте две из этих точек, одна из которых x - минимальное значение, указанное награфик, а тот, где х - максимально возможное значение.Затем линия должна нарисоваться так, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...