ChartDataBindAxisLabelModel xAxisLabelModel = null;
dataSeriesModel = new ChartDataBindModel(dgv.DataSource);
// If ChartDataBindModel.XName is empty or null, X value is index of point.
dataSeriesModel.YNames = new string[] { "Column3" };
series.ResetSeriesModel();
series.SeriesModel = dataSeriesModel;
series.Style.Border.Color = Color.Transparent;
series2.ResetSeriesModel();
series2.SeriesModel = dataSeriesModel;
series2.Style.Border.Color = Color.Transparent;
dataSeriesModel.XName = "Column1";
dataSeriesModel2 = new ChartDataBindModel(dgv.DataSource);
xAxisLabelModel = new ChartDataBindAxisLabelModel(dgv.DataSource);
xAxisLabelModel.LabelName = "Column2";
sXA1.LabelsImpl = xAxisLabelModel;
sXA1.ValueType = ChartValueType.Custom;
sXA1.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.UserMode;
sXA1.Font = new Font("Calibri", 7);
// If ChartDataBindModel.XName is empty or null, X value is index of point.
dataSeriesModel.YNames = new string[] { "Column3" };
dataSeriesModel2.YNames = new string[] { "Column4" };
series.SeriesModel = dataSeriesModel;
series.Style.Border.Color = Color.Transparent;
series2.SeriesModel = dataSeriesModel2;
series2.Style.Border.Color = Color.Transparent;
//add axis
ChartAxis sYA = new ChartAxis(ChartOrientation.Vertical);
chart.Axes.Add(sYA);
series2.YAxis = sYA;
series2.XAxis = sXA1;
I am adding new axes each time because I have to clear the axes everytime due to the number of series changing periodically and I do not want to keep adding new axes everytime which happens if axes are not cleared. This works fine with column charts. However, if I switch to a bar chart the axis labels get messed up. I can still see the xaxis labels listed on the horizontal axes (all crunched together on the left side), and the vertical axis does not have any labels. I tried to simply switch the orientations of each axis but that does not help. Is there any way to have the x-axis automatically move to the vertical position and render the labels properly?
Thanks.
|
ChartAxis axis = new ChartAxis(ChartOrientation.Horizontal);
series.XAxis = axis;
series.ActualXAxis.LabelsImpl = dataLabelsModel;
series.ActualXAxis.ValueType = ChartValueType.Custom;
series.ActualXAxis.LabelsOffset = 1;
chart.Axes.Add(axis); |