1

顧客の成長を示すグラフが必要です。今年のデータはまだ変化しているため、今年の地域も「ハイライト」したいと思います。

写真は 1,000 語よりも優れているため:

これは私の現在のグラフです: ここに画像の説明を入力

次のようになります。 ここに画像の説明を入力

(2012 年が現在の年ではないことはわかっています。これらは単なるサンプル データです ;))

残念ながら、zedGraphs boxObj は本当に私を悩ませており、どうにも機能させることができません。

これはこれまでの私のグラフコードです:

        graphControl.GraphPane.CurveList.Clear();

        graphControl.GraphPane.Title.Text = "Umsatz-Jahresvergleich von " + kunde.Name;
        graphControl.GraphPane.XAxis.Title.Text = "Jahr";
        graphControl.GraphPane.YAxis.Title.Text = "Umsatz in €";

        ArrayList arrYears          = new ArrayList();
        List<String> lstYearStrings = new List<string>();
        double[] xValue2 = new double[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

        ArrayList arrActYear = new ArrayList();
        foreach (KeyValuePair<int, Jahresumsatz> kvp in kunde.Umsaetze.OrderBy(key => key.Key))
        {
            arrYears.Add(kvp.Value.UmsatzNetto);
            lstYearStrings.Add(kvp.Value.Jahr.ToString());
        }

        graphControl.GraphPane.XAxis.Scale.TextLabels = lstYearStrings.ToArray();
        graphControl.GraphPane.XAxis.Type = AxisType.Text;
        graphControl.GraphPane.XAxis.Scale.FontSpec.Angle = 90;

        LineItem curve = graphControl.GraphPane.AddCurve("Umsatz im Jahresvergleich", xValue2, (double[])arrYears.ToArray(typeof(double)), Color.Red, SymbolType.Circle);
        curve.Line.Fill = new Fill(Color.White, Color.FromArgb(160, 230, 145, 205), 90F);
        curve.Symbol.Fill = new Fill(Color.Red);


        /* One of my many experiments with BoxObj... it's not working of cause :(
        BoxObj box = new BoxObj(0.5, 0.5, 40, 40, Color.Empty,Color.FromArgb(150, Color.LightGreen));
        box.Fill = new Fill(Color.White, Color.FromArgb(200, Color.LightGreen), 45.0F);
        box.ZOrder = ZOrder.E_BehindCurves;
        box.IsClippedToChartRect = true;
        box.Location.CoordinateFrame = CoordType.AxisXYScale;*/

        graphControl.GraphPane.GraphObjList.Add(box);

        graphControl.GraphPane.AxisChange();

        graphControl.Refresh();

誰かがこれで私を助けることができれば、それは本当に素晴らしいことです.

ところで、BoxObj はなんらかの方法で動的である必要があるため、これはグラフに合わせてスケーリングされ、選択された年が異なる場合でも適合します。

よろしくお願いします

4

1 に答える 1

2

私はあなたが持っているものに沿って以下のことを試してみましたが、透明な緑色の長方形が見えます:

BoxObj box = new BoxObj(3, 70, 1, 70, Color.Empty,Color.FromArgb(100, Color.LightGreen));
box.Fill = new Fill(Color.White, Color.FromArgb(120, Color.LightGreen), 45.0F);
box.ZOrder = ZOrder.A_InFront;
box.IsClippedToChartRect = true;
box.Location.CoordinateFrame = CoordType.AxisXYScale;
于 2013-06-04T17:52:58.950 に答える