图表工具包自定义水平轴值
Charting Toolkit Custom Horizontal Axis values
我正在使用图表工具包绘制频率与响度(分贝)的关系图。
水平轴频率的值为 100、250、500、1000、2000、4000、6000 和 8000。
当我绘制图表时,水平轴根据 'Interval' 显示频率值,它在 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 轴标签,以便我可以准确显示上面提到的值?
使用 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>
我正在使用图表工具包绘制频率与响度(分贝)的关系图。 水平轴频率的值为 100、250、500、1000、2000、4000、6000 和 8000。 当我绘制图表时,水平轴根据 'Interval' 显示频率值,它在 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 轴标签,以便我可以准确显示上面提到的值?
使用 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>