2014-01-27 1 views
1

У меня две серии в DataVisualization.Charting.Chart и две оси AxisY (AxisY1 и AxisY2). Мне удалось отобразить обе диаграммы на диаграмме, но нули для левой и правой оси не выровнены. Как я могу выровнять нули для двух осей?Выравнивание нулей в двух координатах оси Y DataVisualization.Charting.Chart

NetChart.Series.Clear() 
NetChart.Series.Add("Net") 
NetChart.Series.Add("Net Cum.") 
NetChart.Series(0).Points.Clear() 
NetChart.Series(1).Points.Clear() 

Dim netSaleDT As DataTable = SomeDataTable 
netSaleDT.Columns.Add("CumulativeNet", GetType(Decimal)) 
Dim index As Integer = 0 
Dim cumulSum As Decimal = 0 
For Each drow As DataRow In netSaleDT.Rows 
    cumulSum += Convert.ToDecimal(drow("Net")) 
    drow("CumulativeNet") = cumulSum 
    NetChart.Series(0).Points.AddXY(drow("myMonth"), Convert.ToDecimal(drow("Net"))) 
    NetChart.Series(1).Points.AddXY(drow("myMonth"), Convert.ToDecimal(drow("CumulativeNet"))) 
    NetChart.Series(0).Points(index).AxisLabel = drow("myMonth") 
    index += 1 
Next 

NetChart.Series(0).YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Primary 
NetChart.Series(1).YAxisType = System.Windows.Forms.DataVisualization.Charting.AxisType.Secondary 
NetChart.Series(1).ChartType = DataVisualization.Charting.SeriesChartType.Line 
NetChart.ChartAreas(0).AxisX.Interval = 2 
NetChart.ChartAreas(0).AxisY.LabelStyle.Format = "C" 
NetChart.ChartAreas(0).AxisY2.LabelStyle.Format = "C" 

NetChart.Series(1).BorderWidth = 2 
NetChart.Series(1).Color = Color.Blue 
NetChart.ChartAreas(0).AxisY2.Enabled = DataVisualization.Charting.AxisEnabled.True 
NetChart.ChartAreas(0).AxisY2.LabelStyle.Enabled = True 
+0

У меня такая же проблема –

ответ

0

Является ли свойство оси задано автоматически?

Если вам нужно вручную установить каждую ось программно.

http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.axis.minimum%28v=vs.110%29.aspx

Когда я установил мин/макс я обычно делаю что-то вроде этого:

 Dim myChart As Excel.ChartObject = CType(xlCharts.Item(y), ChartObject) 
     Dim chartPage As Excel.Chart = myChart.Chart 
     chartPage.Axes(Excel.XlAxisType.xlCategory).minimumscale = minimum 
     chartPage.Axes(Excel.XlAxisType.xlCategory).maximumscale = maximum 

Это изменяет масштаб оси х, чтобы изменить масштаб Y:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.chartarea.axisy%28v=vs.110%29.aspx

и изменить масштаб вторичной у:

http://msdn.microsoft.com/en-us/library/system.windows.forms.datavisualization.charting.chartarea.axisy2%28v=vs.110%29.aspx

Надеется, что это помогает

* Редактировать

Ну я пытался не дать вам полный ответа

Но я полагаю:

Dim myChart As Excel.ChartObject = CType(QoE.xLSheet1.ChartObjects(0), ChartObject) 
    Dim chartPage As Excel.Chart = myChart.Chart 
    chartPage.Axes(Excel.XlAxisGroup.xlPrimary).minimumscale = 0 
    chartPage.Axes(Excel.XlAxisGroup.xlSecondary).minimumscale = 0 

Установите объект диаграммы к любой диаграмме, которую вы пытаетесь изменить, затем установите как основную, так и вторичную оси y на 0

+0

Спасибо! Но это не сработало для меня. – Dogahe

+0

Хорошо, это работает? – Nefariis

+0

Я не мог перевести ваш ответ из Excel, который вы предоставили для Windows.Forms.DataVisualization.Charting.Chart, что я и ищу. – Dogahe

Смежные вопросы