图表多类型和辅助Y轴

时间:2012-02-07 17:09:41

标签: c# charts

我正在创建一个包含3个系列的图表,其中2个是列,我需要一条贯穿其中的行显示平均值。

我找到了趋势线,但目前我的图表显示了一个系列列和趋势线,当时我只想查看趋势线。这是代码:

// Add a chart for the country. i.e. show the 
var chart = worksheet.Drawings.AddChart(countryName + "Click through report", eChartType.ColumnClustered);

// Set the size of the chart
chart.SetSize(1150, 540);

//Set the series value for each column - impressions
int chartrange = cumCtrj + 27;
var series1 = chart.Series.Add("=" + countryName + "!$B$29:$B$" + chartrange, "=" + countryName + "!$A$29:$A$" + chartrange);
series1.Header = "Dealer Lists Displayed";

// column - Clicks
var series2 = chart.Series.Add("=" + countryName + "!$C$29:$C$" + chartrange, "=" + countryName + "!$A$29:$A$" + chartrange);
series2.Header = "Clicks To Dealer";

var series3 = chart.Series.Add("=" + countryName + "!$D$29:$D$" + chartrange, "=" + countryName + "!$A$29:$A$" + chartrange);
series3.Header = "Click Through Rate";
series3.TrendLines.Add(eTrendLine.Linear);

如何在没有列的情况下获得趋势线?

编辑:我实际上并不确定这是我需要的趋势线 - 因为值实际上在表格中( - CTR率是点击次数/展示次数* 100并且是百分比值) - 但我需要这个显示为穿过其他两列的线。

以下是我正在使用的表格示例。

Row Impressions Clicks CTR

40  391 4   1.0210593
41  986 35  3.5491558
42  104 37  3.534818
43  236 38  16.064257
44  579 10  1.72592337

编辑2: 我找到了添加一条线的方法(所以第二个图表类型到我的图表中请看下面的代码:

   // TODO click through rate as a line.
                            var chartType2 = chart.PlotArea.ChartTypes.Add(eChartType.Line);
                            var series3 = chartType2.Series.Add("=" + countryName + "!$D$29:$D$" + chartrange, "=" + countryName + "!$A$29:$A$" + chartrange);
                            series3.Header = "Click Through Rate";

我需要做的最后一件事是添加辅助Y轴 - 任何帮助都会受到赞赏!

感谢。

1 个答案:

答案 0 :(得分:0)

要添加辅助轴,需要执行以下操作:

  // column - Clicks
                            var chartType3 = chart.PlotArea.ChartTypes.Add(eChartType.ColumnClustered);
                            var series2 = chartType3.Series.Add("=" + countryName + "!$C$29:$C$" + chartrange, "=" + countryName + "!$A$29:$A$" + chartrange);
                            series2.Header = "Clicks To Dealer";
                            chartType3.UseSecondaryAxis = true;

即使i与第一个图表相同,制作新的图表类型(charttype3)也很重要,这样你就可以使用chartType3.UseSecondaryAxis = true