• 使用 ZedGraph 製作統計圖 转载


    //記得要加入參考
    using ZedGraph;

    //資料來源
    private DataTable getDT()
    {
    DataTable dt
    = new DataTable();
    dt.Columns.Add(
    "學號", System.Type.GetType("System.String"));
    dt.Columns.Add(
    "姓名", System.Type.GetType("System.String"));
    dt.Columns.Add(
    "國文", System.Type.GetType("System.Int32"));
    dt.Columns.Add(
    "英文", System.Type.GetType("System.Int32"));
    dt.Columns.Add(
    "數學", System.Type.GetType("System.Int32"));

    dt.Rows.Add(
    "B9510001", "崔昱翰", 85, 66, 71);
    dt.Rows.Add(
    "B9510002", "王詩光", 65, 92, 88);
    dt.Rows.Add(
    "B9510003", "劉育白", 52, 66, 63);
    dt.Rows.Add(
    "B9510004", "許威宇", 98, 70, 61);
    dt.Rows.Add(
    "B9510005", "李佩珊", 81, 63, 76);
    dt.Rows.Add(
    "B9510006", "潘紹興", 91, 77, 76);

    return dt;
    }

    //學生成績
    public void StudentChart1(ZedGraphControl zgc)
    {
    // Google網域搜尋:Fill site:http://zedgraph.sourceforge.net/documentation

    GraphPane myPane
    = zgc.GraphPane;

    //
    DataTable dt = getDT();

    // Set the title and axis labels
    myPane.Title.Text = "學生成績量化表";
    myPane.XAxis.Title.Text
    = "學生姓名";
    myPane.YAxis.Title.Text
    = "分數";

    PointPairList list1
    = new PointPairList();
    PointPairList list2
    = new PointPairList();
    PointPairList list3
    = new PointPairList();

    Random rand
    = new Random();

    // Generate random data for three curves
    for (int i = 0; i <dt.Rows.Count; i++)
    {

    double x = (double)i;
    double y1_chian = Convert.ToDouble(dt.Rows[i]["國文"]);
    double y2_eng = Convert.ToDouble(dt.Rows[i]["英文"]);
    double y3_math = Convert.ToDouble(dt.Rows[i]["數學"]);
    list1.Add(x, y1_chian);
    list2.Add(x, y2_eng);
    list3.Add(x, y3_math);
    }

    // create the curves
    // BarItem.Bar.Fill(Color) 填入單一顏色
    // BarItem.Bar.Fill(Color, Color, Color, 90) 填入漸層顏色,第4參數是旋轉角度
    BarItem myCurve1 = myPane.AddBar("國文", list1, Color.Red);
    myCurve1.Bar.Fill
    = new Fill(Color.FromArgb(255, 238, 221));

    BarItem myCurve2
    = myPane.AddBar("英文", list2, Color.Blue);
    myCurve2.Bar.Fill
    = new Fill(Color.FromArgb(221, 255, 238));

    BarItem myCurve3
    = myPane.AddBar("數學", list3, Color.Green);
    myCurve3.Bar.Fill
    = new Fill(Color.FromArgb(238, 221, 255));



    // Fill the axis background with a color gradient
    // 背景色
    // myPane.Chart.Fill = new Fill(Color.White, Color.FromArgb(255, 255, 166), 45.0F);

    myPane.XAxis.MajorTic.IsBetweenLabels
    = true;

    //加入X LabelText
    string[] labels = new string[6];
    for (int i = 0; i <dt.Rows.Count; i++)
    {
    labels[i]
    = Convert.ToString(dt.Rows[i]["姓名"]);
    }
    myPane.XAxis.Scale.TextLabels
    = labels; //X軸的說明文字
    myPane.XAxis.Type = AxisType.Text; //X軸類型

    //重新計算目前數據範圍
    zgc.AxisChange();

    // expand the range of the Y axis slightly to accommodate the labels
    // myPane.YAxis.Scale.Max += myPane.YAxis.Scale.MajorStep;
    // YAxis最大值
    myPane.YAxis.Scale.Max = 110;

    // Create TextObj's to provide labels for each bar
    // 在bar上顯示數值
    BarItem.CreateBarLabels(myPane, false, "f0");

    //顯示格點
    myPane.YAxis.MajorGrid.IsVisible = true;
    myPane.XAxis.MajorGrid.IsVisible
    = true;
    }
  • 相关阅读:
    [linux] 使用markdown写文档
    [c/c++] C数据结构: 链表 Linked List
    Apache 2 : starting apache
    GNU/CPIO 学习小结
    lsof 命令小结
    在Linux中扩展磁盘容量(1)
    在linux中扩展磁盘容量(2)LVM
    RHEL6.0 QEMU/KVM 建立新的虚拟机之配置Birdged Networking
    NFS server down机或重启导致的NFS系统错误
    Build linux kernel Module
  • 原文地址:https://www.cnblogs.com/beeone/p/2006239.html
Copyright © 2020-2023  润新知