c# - How to set ColumnBar series to a chart -
i want project column given width (e.i. 16-05-03 12:00:00 16-07-26 12:00:00) , projects along x axis (e.i labels bool, int, long, bool, int long) (see picture below).
for have 2 chart areas both having same parameters.
private void addchartareas(string name) { // axisx chart1.chartareas.add(name); chart1.chartareas[name].axisx.majorgrid.enabled = false; chart1.chartareas[name].axisx.interval = 1; // axisy chart1.chartareas[name].axisy.scrollbar.enabled = true; chart1.chartareas[name].axisy.scaleview.zoomable = true; chart1.chartareas[name].axisy.majorgrid.enabled = false; chart1.chartareas[name].axisy.labelstyle.format = "yyyy-mm-dd hh:mm:ss"; chart1.chartareas[name].axisy.interval = 0; chart1.chartareas[name].axisy.intervaltype = datetimeintervaltype.years; mindate = new datetime(2016, 01, 01, 00, 00, 00, 000); maxdate = new datetime(2016, 12, 01, 00, 00, 00, 000); // or datetime.now; chart1.chartareas[name].axisy.minimum = mindate.tooadate(); chart1.chartareas[name].axisy.maximum = maxdate.tooadate(); chart1.chartareas[name].axisy.labelstyle.isendlabelvisible = true; chart1.chartareas[name].axisy.islabelautofit = true; chart1.chartareas[name].axisy.labelstyle.forecolor = color.yellow; chart1.chartareas[name].axes[0].enabled = axisenabled.false; chart1.chartareas[name].axes[1].enabled = axisenabled.false; chart1.chartareas[name].backcolor = color.transparent; chart1.chartareas[name].position.height = 100; chart1.chartareas[name].position.width = 100; chart1.chartareas[name].innerplotposition.height = 90; chart1.chartareas[name].innerplotposition.width = 80; chart1.chartareas[name].innerplotposition.x = 10; } the first chart area (bar series) created following:
var series = new series { name = "s1", color = color.lightslategray, charttype = seriescharttype.bar }; chart1.series.add(series); the second chart area (range column series):
var series = new series { name = "s2", color = color.lightslategray, charttype = seriescharttype.rangecolumn }; chart1.series.add(series); to add points bar series bind 2 lists x, y:
var lables = new string[6]; var values = new datetime[6]; mindate = new datetime(2016, 01, 01, 00, 00, 00, 000); // dummy data lables[0] = "bool"; lables[1] = "int"; lables[2] = "long"; lables[3] = "bool"; lables[4] = "int"; lables[5] = "long"; // dummy data values[0] = mindate.addmonths(10); values[1] = mindate.addmonths(10); values[2] = mindate.addmonths(10); values[3] = mindate.addmonths(10); values[4] = mindate.addmonths(10); values[5] = mindate.addmonths(10); // bind 2 lists series[0].points.databindxy(lables, values); for column range series:
pointindex = series[1].points.addxy(values2[1], values2[5]); right looks this:
how make such looks first picture.
i came solution.
instead of range column make range bar series , set pointwidth 5:
var series = new series { name = "s2", color = color.lightslategray, charttype = seriescharttype.rangebar }; series["pointwidth"] = "5"; chart1.series.add(series); than when plotting:
mindate = new datetime(2016, 01, 01, 00, 00, 00, 000); values2[0] = mindate.addmonths(1); values2[1] = mindate.addmonths(2); pointindex = series2.points.addxy(values2[1], values2[1]); that give me results want.


Comments
Post a Comment