[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 384
  • Last Modified:

Fine tune column chart asp.net c#

There are 4 items numbered 1 through 4 on the attached image. I hope to be able to do them by revising the code below:

Question: Could you please review to see if all or some of them doable?

Thank you.
    protected void Page_Load(object sender, EventArgs e)
    {
            var chartImage = new Chart();
            chartImage.Width = 600;
            chartImage.Height = 400;

            //chartImage.Titles.Add("Sample Chart");
            chartImage.Series.Add("Decade");
           // chartImage.Legends.Add(chartImage.Series[0].Name); // optional, show legend

            // add data points
            object[] xValue = { "1970", "1980", "1990", "2000", "2010" };
            object[] yValues = { "9", "22", "52", "89", "123" };
            for (int x = 0; x < xValue.Length; x++) {
                chartImage.Series[0].Points.AddXY(xValue[x], yValues[x]);} // may need to cast to double, if "option strict"
 
            chartImage.ChartAreas.Add("chartArea0"); // always need to add this
            chartImage.ChartAreas[0].AxisX.Title = "Decade"; // optional, show axis x title
           // chartImage.ChartAreas[0].AxisY.Title = "Incidence"; // optional, show axis y title
            chartImage.ChartAreas[0].AxisX.LabelStyle.Angle = 90;
            chartImage.ImageStorageMode = ImageStorageMode.UseImageLocation; // avoid having to define http handler for now, simpler for quick testing
            this.Controls.Add(chartImage); // add to page for automatic rendering
        }

Open in new window

ColumnChart.png
0
Mike Eghtebas
Asked:
Mike Eghtebas
  • 3
  • 2
1 Solution
 
Robert SchuttSoftware EngineerCommented:
Give these a try:
            // 1 don't show grid
            chartImage.ChartAreas[0].AxisX.MajorGrid.Enabled = false;
            chartImage.ChartAreas[0].AxisY.MajorGrid.Enabled = false;

            // 2 remove y labels?
            chartImage.ChartAreas[0].AxisY.LabelStyle.Enabled = false;

            // 3 show value
            chartImage.Series[0].IsValueShownAsLabel = true;
            chartImage.Series[0].LabelForeColor = System.Drawing.Color.Blue;

            // 4 rotate x labels
            chartImage.ChartAreas[0].AxisX.LabelStyle.Angle = 90;

Open in new window

0
 
Mike EghtebasDatabase and Application DeveloperAuthor Commented:
Hi Rober,

Thank you very much for the very good solution you gave to me. As shown on the attached image:

1. The border for ChartAreas[0] is also eliminated in removing the major axis. I tired to use the line below but it didn't work:
chartImage.ChartAreas[0].BorderColor = System.Drawing.Color.DeepPink;

2. Is it possible to remove the y-axis graduation as well?

Regards,

Mike
ColumnChart2.png
0
 
Robert SchuttSoftware EngineerCommented:
Try this:
1. Besides setting BorderColor, also set (not really sure why...):
chartImage.ChartAreas[0].BorderDashStyle = ChartDashStyle.Solid;

Open in new window

2. What you call graduation is called tick marks:
chartImage.ChartAreas[0].AxisY.MajorTickMark.Enabled = false;

Open in new window

0
 
Mike EghtebasDatabase and Application DeveloperAuthor Commented:
Thank you very much for the solution.

I have a follow up question if you have a couple of minutes (in your case probably couple of second because you seem to be very comfortable with the subject).

http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_28490290.html

Regards,

Mike
0
 
Mike EghtebasDatabase and Application DeveloperAuthor Commented:
Thank you.
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now