我正在使用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轴标签,以便我可以准确显示上面提到的值?
答案 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>