如何更改Microsoft图表控件中的轴分隔线颜色(柱形图)

时间:2010-03-11 22:25:47

标签: .net charts

见下图。我正在以编程方式构建图表,所以请不要使用asp.net控件语法。

bar chart example

如何更改条形后横向和纵向交叉的网格线颜色?正如您所看到的,我已经研究出如何更改实际轴颜色,但网格颜色仍为黑色。

public ActionResult RenderChart()
{
    var chart = new Chart();
    double[] yValues = { 65.62, 75.54, 60.45, 55.73, 70.42 };
    string[] xValues = { "Michelle", "Sarah", "Aliece", "Belinda", "Amanda" };
    var series = new Series
    {
        Name = "Default",
        ChartType = SeriesChartType.Column,
        CustomProperties = "DrawingStyle=Cylinder"
    };
    series.Points.DataBindXY(xValues, yValues);

    chart.BorderlineColor = Color.Silver;
    var area = new ChartArea("Test");
    area.AxisX.LineColor = Color.DarkGray;
    area.AxisY.LineColor = Color.DarkGray;

    chart.ChartAreas.Add(area);
    chart.Series.Add(series);
    series.IsValueShownAsLabel = true;

    series.Font = new Font(series.Font, FontStyle.Bold);
    chart.Width = 400;
    chart.Height = 300;

    using(var ms = new MemoryStream())
    {
        chart.SaveImage(ms, ChartImageFormat.Png);
        Response.ContentType = "image/png";
        Response.BinaryWrite(ms.ToArray());
        return new EmptyResult();
    }
}

3 个答案:

答案 0 :(得分:16)

没关系,找到了答案:

area.Axes[n].MajorGrid.LineColor = Color.Whatever;

答案 1 :(得分:3)

您也可以在HTML中这样做

 <asp:Chart ID="chartOutstandingOrders" runat="server" Width="500" Palette="Bright">

            <Series>
                <asp:Series ChartType="Line" Name="seriesBackorder">
                </asp:Series>
            </Series>

            <ChartAreas>
                <asp:ChartArea Name="ChartArea1" BorderColor="#339966">
                    <AxisX LineColor="Gray">
                        <MajorGrid LineColor="LightGray" />
                    </AxisX>
                    <AxisY LineColor="Gray">
                        <MajorGrid LineColor="LightGray" />
                    </AxisY>
                </asp:ChartArea>
            </ChartAreas>

        </asp:Chart>

答案 2 :(得分:0)

对于MS Chart,可以通过以下语句更改背景网格颜色。

myChart.ChartAreas["xSeries"].AxisX.MajorGrid.LineColor = Color.Blue;