Charting Toolkit自定义水平轴值

时间:2015-09-30 19:18:21

标签: c# wpf xaml charts datavisualization.toolkit

我正在使用Charting工具包绘制频率与响度(分贝)的关系图。 水平轴频率的值为100,250,500,1000,2000,4000,6000和8000。 绘制图形时,水平轴根据“间隔”显示频率值,“间隔”在x轴上保持相同。我的x轴值具有不同的间隔。 更新我想要一个折线图。这是完整的代码 XAML是:

   <chartingToolkit:Chart Name="lineChart"
        Title="Results">
        <chartingToolkit:LineSeries Name="MyData"
            Title="Calculated data"  
            DependentValuePath="Value" 
            IndependentValuePath="Key"
            ItemsSource="{Binding [0]}"/>
        <chartingToolkit:Chart.Axes>
            <chartingToolkit:LinearAxis 
                Orientation="Y"
                Minimum="0" Maximum="80"
                Title="Loudness in dB"
                Interval="5" />
            <chartingToolkit:LinearAxis Name="xAxis"
                Orientation="X"
                Minimum="0" Maximum="8000"
                Title="Frequency in Hz"
                Interval="500" />
       </chartingToolkit:Chart.Axes>
   </chartingToolkit:Chart>

和c#代码是:

    private void ShowLineChart(myChartResult) 
// myChartResult is a List of objects
// each object has a frequency and decibel field
    {
        var dataSourceList = new List<List<KeyValuePair<int, int>>>();

        for (int i = 0; i < myChartResult.Count; i++)
            dataSourceList.Add(new KeyValuePair<int, int>
               (myChartResult[i].frequency,
               myChartResult[i].decibels));
        lineChart.DataContext = dataSourceList;
}

在图中,绘制了分别对100和250的分贝值,但水平轴未显示100和250的频率值。 有没有办法自定义(在XAML或c#中)x轴标签,以便我可以准确显示上面提到的值?

1 个答案:

答案 0 :(得分:1)

使用ColumnSeries

    <chartingToolkit:Chart Margin="0" Title="Chart Title">
        <chartingToolkit:Chart.DataContext>
            <local:MyDataCollection/>
        </chartingToolkit:Chart.DataContext>
        <chartingToolkit:ColumnSeries DependentValuePath="Decibel" IndependentValuePath="Frequency" ItemsSource="{Binding}"/>
    </chartingToolkit:Chart>

enter image description here