2

.net Charting を使用して箱ひげ図を生成します。ボックスと中央線を描くことができます。私はひげを働かせさえしました。

次のメソッドを使用して を生成しElementCollectionます。

ElementCollection GetElements(IDictionary<int, IList<double>> series)
{
    ElementCollection elements = new ElementCollection();

    foreach (int visitnr in series.Keys)
    {
        double perc25 = GetPercentile3(0.25, series[visitnr]);
        double perc50 = GetPercentile3(0.50, series[visitnr]);
        double perc75 = GetPercentile3(0.75, series[visitnr]);

        Element e = new Element();
        e.Name = visitnr.ToString();
        e.YValue = perc75;
        e.YValueStart = perc25;

        // median
        SubValue sv = SubValue.FromValue(perc50);
        sv.Line.Width = 2;
        sv.Line.Length = 21;
        sv.Type = SubValueType.Line;
        e.SubValues.Add(sv);

        // whiskers
        double maxWhiskerOffset = (perc75 - perc25) * 1.5;
        if (perc25 - maxWhiskerOffset < series[visitnr][0])
            e.ErrorLowValue = series[visitnr][0];
        else
            e.ErrorLowValue = perc25 - maxWhiskerOffset;
        if (perc75 + maxWhiskerOffset > series[visitnr][series[visitnr].Count - 1])
            e.ErrorHighValue = series[visitnr][series[visitnr].Count - 1];
        else
            e.ErrorHighValue = perc75 + maxWhiskerOffset;

        elements.Add(e);
    }

    return elements;
}

わからないこと: 極端な値を追加するにはどうすればよいですか? ウィスカー領域内にない値を表示する必要があります。線でも点でも、何でも構いません。追加の要素を介してこれを実行しようとしましたが、うまくいきません。何か案は?

4

1 に答える 1

0

サブ値を追加して、特定のタイプを指定する必要があります。

SubValue ev = SubValue.FromValue(v);
ev.Type = SubValueType.Marker;

e.SubValues.Add(ev);
于 2013-04-22T01:38:08.587 に答える