c# - How to change chart series color -
i have single series populates chart records database. 7 records been displayed in sanme color.
i' trying change each bar color without success

below lines tried gave me 1 big green bar (:
private void button1_click(object sender, eventargs e) { /*first empty chart2 fire current data*/ if (cbchart.selecteditem == null) { chart.visible = false; chart.controls.clear(); } else //pnchart.controls.clear(); chart.visible = true; chart.titles.clear(); /*add new title*/ title bezeichung = new title("finance" + environment.newline + "(gwu)", docking.top, new font("yu gothic", 8, fontstyle.bold), color.black); chart.titles.add(bezeichung); chart.titles.add(bezeichung2); if (cbchart.selecteditem != null) { string s = configurationmanager.connectionstrings[""].connectionstring; sqlconnection con = new sqlconnection(s); sqlcommand cmd = new sqlcommand(); cmd.connection = con; cmd.commandtype = commandtype.storedprocedure; cmd.commandtext = ("[dbo].[storedprocedure]"); cmd.parameters.addwithvalue("@table_name", cbchart.selectedvalue.tostring()); sqldatareader myreader; // datareader read data datbase try { //do con.open(); myreader = cmd.executereader(); while (myreader.read()) { //parameters (seriesname, x-axis data & y-axis data) this.chart.series["series"].points.addxy(myreader["finance"], myreader["gwu"]); // remove grid lines chart.chartareas[0].axisx.majorgrid.linewidth = 0; chart.chartareas[0].axisy.majorgrid.linewidth = 0; chart.chartareas[0].axisx.labelstyle.angle = -45; chart.series["series1"].points[0].color = color.green; chart.series["series1"].points[1].color = color.red; chart.series["series1"].points[2].color = color.powderblue; chart.series["series1"].points[3].color = color.peru; chart.series["series1"].points[4].color = color.pink; chart.series["series1"].points[5].color = color.purple; } } catch (exception ex) { messagebox.show(ex.message); } { con.close(); } } else { messagebox.show("bitte ", "info", messageboxbuttons.ok, messageboxicon.warning); } } that’s error message received after running it: index lies outside valid range, index must not negative , must lower size of list
and chart after hitting button:

you trying change color of points before added in series. move below block out of while loop , check if enough points exists in series before try access index,
chart.series["series1"].points[0].color = color.green; chart.series["series1"].points[1].color = color.red; chart.series["series1"].points[2].color = color.powderblue; chart.series["series1"].points[3].color = color.peru; chart.series["series1"].points[4].color = color.pink; chart.series["series1"].points[5].color = color.purple; below changes need make in code,
while (myreader.read()) { //parameters (seriesname, x-axis data & y-axis data) this.chart.series["series"].points.addxy(myreader["finance"], myreader["gwu"]); } if(chart.chartareas.count > 0) { chart.chartareas[0].axisx.majorgrid.linewidth = 0; chart.chartareas[0].axisy.majorgrid.linewidth = 0; chart.chartareas[0].axisx.labelstyle.angle = -45; } if(chart.series["series1"].points.count > 5) { chart.series["series1"].points[0].color = color.green; chart.series["series1"].points[1].color = color.red; chart.series["series1"].points[2].color = color.powderblue; chart.series["series1"].points[3].color = color.peru; chart.series["series1"].points[4].color = color.pink; chart.series["series1"].points[5].color = color.purple; }
Comments
Post a Comment