I haven't able to set the label of the y axis (I don't think its possible) but you could set it on the legend using the Title property. On the x axis it depends on the binding set on your DataPointSeries'IndependentValueBinding.
Lets say on this sample I have created a class object that will represent every record/datapoint.
public class ChartInfo
{
public string Label { get; set; }
public double Value { get; set; }
}
Then I have this code:
List<ChartInfo> list = new List<ChartInfo>();
ChartInfo item = new ChartInfo();
item.Label = "Individual";
item.Vale = 27;
list.Add(item);
item = new ChartInfo();
item.Label = "Corporate";
item.Vale = 108;
list.Add(item);
DataPointSeries series = new ColumnSeries();
series.Title = "Quantity";
series.DependentValueBinding = new Binding("Value");
series.IndependentValueBinding = new Binding("Label");
series.ItemsSource = list;
series.SelectionChanged += new SelectionChangedEventHandler(series_SelectionChanged);
this.chartingToolkitControl.Series.Add(series);
It will give me this result.
For the zooming - I think the right term is drill-down. You could use the SelectionChanged event (see the code above). What you should do is requery your datasource and clear the graph's series and add a new one based on your query result.
private void series_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
//The sender here is of type DataPointSeries wherein you could get the SelectedItem (in our case ChartInfo) and from there you could do the requery.
}