1

我正在使用图表工具包绘制频率与响度(分贝)的关系图。横轴频率的值为 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 轴标签,以便我可以准确显示我上面提到的值?

4

1 回答 1

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>

在此处输入图像描述

于 2015-09-30T20:22:08.963 回答