使用radbar图的2轴标签和条形图之间没有间隙的问题

本文关键字:之间 间隙 问题 条形图 图的 radbar 标签 使用 | 更新日期: 2023-09-27 17:50:55

我有两个问题:

  1. 我想从数据表的名称,但它是显示我在数字形式。

  2. 我想在两个条之间有一个间隙,但是我找不到方法。

代码如下:

private void InitializeGraph (DataTable poDt){

    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;
    }
}

使用radbar图的2轴标签和条形图之间没有间隙的问题

对不起,我不相信有一种方法可以同时显示两个x轴

我的建议是使用CategoricalAxis作为X轴,并创建一个自定义条形图,其中有一个图例来区分这两个值。我没有任何工作的例子,但是你可以使用这个Telerik Silverlight演示初学者。

如果可以的话,切换到RadChartView。因为我会建议一个更简单的方法,即使用一个分类x轴并创建多个Y轴。如果采用这种方法,可以对带有多个y轴的datetimecontinous(或Categorical) 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);