C# ZedGraph Control 控件画 饼图、柱状图、折线图(超级精美,史无前例)

C# ZedGraph Control 控件画 饼图、柱状图、折线图(超级精美,史无前例)_第1张图片

源代码 下载链接

折线图关键代码:

private void DrawCurve()
{
    #region 1、准备数据
    #endregion

    #region 2、图表样式
    ZedGraphControl zgc = new ZedGraphControl();
    GraphPane myPane = zgc.GraphPane;
    zgc.ContextMenuBuilder += MyContextMenuBuilder;   // 手动修改ZedGraphControl控件右击菜单为中文(添加引用ZedGraph.resources也可)
    // 图表
    zgc.IsShowContextMenu = true;        // 显示右键菜单
    zgc.IsShowCopyMessage = true;        // 复制图像时是否显示提示信息
    zgc.IsShowHScrollBar = false;            // 横向滚动条
    zgc.IsShowVScrollBar = false;            // 纵向滚动条
    zgc.IsEnableZoom = false;                 // 缩放
    zgc.IsEnableHZoom = false;              // 横向缩放
    zgc.IsEnableVZoom = false;              // 纵向缩放
    zgc.IsZoomOnMouseCenter = true;  // 使用滚轮时以鼠标所在点为中心进行缩放还是以图形中心进行缩放
    zgc.IsShowCursorValues = true;        // 鼠标在图表上移动时是否显示鼠标所在点对应的坐标 默认为false
    zgc.IsShowPointValues = true;          // 鼠标经过图表上的点时是否显示该点所对应的值 默认为false 
    myPane.Fill = new Fill(BackColor);     // 背景色与form窗口颜色一致
    myPane.Border = new Border(false, Color.Gray, 2.0F);    // 取消图表边框
    // 表格
    myPane.Chart.Fill = new Fill(Color.WhiteSmoke);  // 表格背景色
    // 图例
    Border border = new Border(false, Color.Black, 10);   // 取消图例边框
    myPane.Legend.Border = border;
    myPane.Legend.FontSpec.IsBold = false;
    myPane.Legend.FontSpec.Size = 14f;
    myPane.Legend.FontSpec.Family = "楷体";
    myPane.Legend.Fill = new Fill(BackColor);  // 背景色与form窗口颜色一致
    // 取消表格边框
    myPane.Chart.Border.IsVisible = false;//首先设置边框为无
    myPane.XAxis.MajorTic.IsOpposite = false;  //X轴对面轴大间隔为无
    myPane.XAxis.MinorTic.IsOpposite = false;  //X轴对面轴小间隔为无
    myPane.YAxis.MajorTic.IsOpposite = false;  //Y轴对面轴大间隔为无
    myPane.YAxis.MinorTic.IsOpposite = false;  //Y轴对面轴小间隔为无
    myPane.XAxis.Scale.Min = 0;
    myPane.XAxis.Scale.Max = 10;
    myPane.YAxis.Scale.Min = 0;
    myPane.YAxis.Scale.Max = 100;
    // 标题
    myPane.Title.Text = "函数曲线图";
    myPane.Title.FontSpec.IsBold = true;
    myPane.Title.FontSpec.Size = 20f;
    myPane.Title.FontSpec.Family = "楷体";
    myPane.Title.FontSpec.Fill = new Fill(BackColor);  // 背景色与form窗口颜色一致
    // X轴
    myPane.XAxis.Title.Text = "X";
    myPane.XAxis.Title.FontSpec.IsBold = true;
    myPane.XAxis.Title.FontSpec.Size = 14f;
    myPane.XAxis.Title.FontSpec.Family = "楷体";
    myPane.XAxis.Title.FontSpec.Fill = new Fill(BackColor);  // 背景色与form窗口颜色一致
    // Y轴
    myPane.YAxis.Title.Text = "Y";
    myPane.YAxis.Title.FontSpec.IsBold = true;
    myPane.YAxis.Title.FontSpec.Size = 14f;
    myPane.YAxis.Title.FontSpec.Family = "楷体";
    myPane.YAxis.Title.FontSpec.Fill = new Fill(BackColor);  // 背景色与form窗口颜色一致
    #endregion

    #region 3、画图
    // 曲线1
    PointPairList list1 = new PointPairList();
    for (int x = 0; x < 100; x++)
    {
        if (x % 1 == 0)
        {
            list1.Add((double)x, (double)(x * x + 10));
        }
    }
    LineItem myCurve1 = myPane.AddCurve("Y = X * X + 10", list1, Color.Red, SymbolType.Default);
    // 曲线2
    PointPairList list2 = new PointPairList();
    for (int x = 0; x < 100; x++)
    {
        if (x % 1 == 0)
        {
            list2.Add((double)x, (double)(x * 5 + 15));
        }
    }
    LineItem myCurve2 = myPane.AddCurve("Y = X * 5 +15", list2, Color.Red, SymbolType.Star);

    zgc.AxisChange();
    #endregion
}

你可能感兴趣的:(C#,ZedGraph控件)