0

私には2つの問題があります:

  1. データテーブルから名前が欲しいのですが、数値形式で表示されています。

  2. 2 つのバーの間に隙間が欲しいのですが、方法が見つかりません。

コードは次のとおりです。

private void InitializeGraph (DataTable poDt) { Telerik.Charting.ChartSeries chartseries = new Telerik.Charting.ChartSeries();

    try
    {


        chartseries.Type = Telerik.Charting.ChartSeriesType.Bar;

        Telerik.Charting.ChartSeriesItem csItem;

        RadChart1.PlotArea.XAxis.AutoScale = true;
        RadChart1.PlotArea.XAxis.DataLabelsColumn = "Name";


        for (int iRow = 0; iRow < poDt.Rows.Count; iRow++)
        {
            chartseries = new Telerik.Charting.ChartSeries();

            chartseries.Type = Telerik.Charting.ChartSeriesType.Bar;

            chartseries.Name = poDt.Rows[iRow]["Name"].ToString().Trim();


            csItem = new Telerik.Charting.ChartSeriesItem();
            csItem.Name = poDt.Rows[iRow]["Name"].ToString();
            csItem.Label.TextBlock.Text = poDt.Rows[iRow]["Value"].ToString(); 
            RadChart1.PlotArea.XAxis.Appearance.TextAppearance.AutoTextWrap = Telerik.Charting.Styles.AutoTextWrap.True;

            csItem.YValue = Int32.Parse(poDt.Rows[iRow]["Value"].ToString());

            chartseries.AddItem(csItem);
            RadChart1.Series.Add(chartseries);

        }
        RadChart1.PlotArea.XAxis.AddRange(1, poDt.Rows.Count, 1);

        RadChart1.PlotArea.XAxis[poDt.Rows.Count].TextBlock.Text = chartseries.Name;
        poDt.Rows.Count.ToString();
        RadChart1.PlotArea.XAxis.AutoShrink = false;


        RadChart1.PlotArea.XAxis.AutoShrink = true;
        RadChart1.Series.Add(chartseries);

        RadChart1.PlotArea.Appearance.Border.Visible = false;
        RadChart1.Appearance.Border.Visible = true;
        RadChart1.PlotArea.YAxis.IsLogarithmic = true;

        RadChart1.PlotArea.YAxis.AutoScale = true;
        RadChart1.PlotArea.YAxis.Appearance.ValueFormat=Telerik.Charting.Styles.ChartValueFormat.Number;
        RadChart1.Appearance.BarWidthPercent = 50;



        RadChart1.Chart.Appearance.FillStyle.MainColor = System.Drawing.Color.Red;
        RadChart1.Chart.Appearance.FillStyle.MainColor = System.Drawing.Color.Transparent;
        RadChart1.Legend.Appearance.FillStyle.MainColor = System.Drawing.Color.Transparent;

    }
    catch (Exception Ex)
    {
        //throw;
    }
    finally
    {
        poDt.Clear();
        poDt = null;
        chartseries = null;
    }
}
4

1 に答える 1

0

申し訳ありませんが、2 つの X 軸を同時に表示する方法はないと思います。

私の提案は、X 軸に CategoricalAxis を使用し、2 つの値を区別する凡例を持つカスタム棒グラフを作成することです。動作するサンプルはありませんが、このTelerik Silverlightデモを手始めに使用できます。

また、可能であれば RadChartView に切り替えてください。次に、カテゴリ X 軸を使用して複数の Y 軸を作成する、より簡単なアプローチを提案するためです。そのルートに行く場合、複数の Y 軸を持つ DateTimeContinuous (またはカテゴリカル) X 軸に対して次のようなことができます。

int count = 0;
LineSeries lineSeries = new LineSeries();

lineSeries.CategoryBinding = new PropertyNameDataPointBinding() { PropertyName = "TimeStamp" };
lineSeries.ValueBinding = new PropertyNameDataPointBinding() { PropertyName = "Value" };  

lineSeries.VerticalAxis = new LinearAxis()
{
   Title = "Title Here"
};

lineSeries.ItemsSource = yourCollection.Values;

//First Y-axis to be placed on the left of X-axis,
//additional Y-axes to be placed on right
if (count > 0 )
{
     lineSeries.VerticalAxis.HorizontalLocation = Telerik.Charting.AxisHorizontalLocation.Right;
}
count++;
chartName.Series.Add(lineSeries);

お役に立てれば。

于 2013-01-08T22:18:45.700 に答える