c# - Misalignment of two chart areas -
i trying overlap 2 chart areas. share same x values, y have different values , scales.
here outcome of code:
as can see red series not in alignment green series.i searching site answers, couldn't find 1 worked. explain me why don't align?
code:
using system; using system.drawing; using system.windows.forms; using system.windows.forms.datavisualization.charting; namespace testgraph { public partial class form1 : form { public form1() { initializecomponent(); #region data // creating first series series s1 = new series(); s1.name = "values"; s1.charttype = seriescharttype.column; s1.xvaluetype = chartvaluetype.datetime; s1.color = color.green; s1.borderwidth = 2; // hard coding test values datapoint[] values = { new datapoint(new datetime(2017, 8, 1).tooadate(), 10), new datapoint(new datetime(2017, 8, 2).tooadate(), 11), new datapoint(new datetime(2017, 8, 3).tooadate(), 12), new datapoint(new datetime(2017, 8, 4).tooadate(), 13), }; // adding vales s1 foreach (datapoint p in values) { s1.points.add(p); } // creating second series series s2 = new series(); s2.name = "values 2"; s2.charttype = seriescharttype.column; s2.xvaluetype = chartvaluetype.datetime; s2.color = color.red; s2.borderwidth = 2; // hard coding test values datapoint[] values2 = { new datapoint(new datetime(2017, 8, 1).tooadate(), 0.1), new datapoint(new datetime(2017, 8, 2).tooadate(), -0.2), new datapoint(new datetime(2017, 8, 3).tooadate(), -0.7), new datapoint(new datetime(2017, 8, 4).tooadate(), 13), }; // adding vales s2 foreach (datapoint p in values2) { s2.points.add(p); } #endregion #region charts // initializing chart chart mainchart = new chart(); chartarea area = new chartarea(); chartarea area2 = new chartarea(); controls.add(mainchart); mainchart.dock = dockstyle.fill; // adding areas mainchart mainchart.chartareas.add(area); mainchart.chartareas.add(area2); // adding series areas s1.chartarea = area.name; s2.chartarea = area2.name; mainchart.series.add(s1); mainchart.series.add(s2); // aligning areas // overlapping area2 area area2.alignmentstyle = areaalignmentstyles.all; area2.alignmentorientation = areaalignmentorientations.all; area2.alignwithchartarea = area.name; // scale actualization area2.recalculateaxesscale(); area.recalculateaxesscale(); // defining y scale area2.axisy.maximum = 2; area2.axisy.minimum = -2; area2.backcolor = color.transparent; // disabling unnecessary graphics area2.backgradientstyle = gradientstyle.none; area2.axisx.ismarginvisible = false; area2.axisx.labelstyle.enabled = false; area2.axisy.labelstyle.enabled = false; area2.axisx.enabled = axisenabled.false; area2.axisy.enabled = axisenabled.false; // resizing chart 100% area.position = new elementposition(0, 0, 100, 100); #endregion } } }
one of chart has axisx.ismarginvisible
set true, other false, hence mismatch.
however, if trying plot overlapping series, why not adding them same chart area instead of going through trouble?
Comments
Post a Comment