C# 绘制统计图大全(柱状图, 折线图, 扇形图)

C# 绘制统计图大全(柱状图, 折线图, 扇形图)

介绍

在数据可视化方面,我们经常需要用到各种统计图来展示数据,C#作为一种常用的编程语言,提供了许多绘制统计图的方法。这里将介绍关于如何在C#中使用ZedGraph这个开源库来绘制柱状图、折线图和扇形图。

步骤

1.下载ZedGraph库

在绘制统计图之前,我们需要先下载ZedGraph库。可以在官网上下载安装包或者直接通过NuGet安装。以下是NuGet安装示例:

Install-Package ZedGraph

2.创建Windows窗体应用程序

在Visual Studio中创建Windows窗体应用程序。

3.添加ZedGraph控件

在工具箱中添加ZedGraph控件,并将其拖入窗体中。

4.绘制柱状图

绘制柱状图的步骤如下:

// 添加数据点
List<double> list = new List<double>();
list.Add(20);
list.Add(30);
list.Add(50);
list.Add(25);
list.Add(40);

// 创建柱状图,并设置X轴和Y轴标题
GraphPane pane = zedGraphControl1.GraphPane;
pane.Title.Text = "柱状图";
pane.XAxis.Title.Text = "X轴";
pane.YAxis.Title.Text = "Y轴";

// 添加柱状图对象
BarItem item = pane.AddBar("数据", null, list.ToArray(), Color.Blue);
item.Bar.Fill = new Fill(Color.Blue, Color.White, Color.Blue);

// 更新控件并重绘
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();

5.绘制折线图

绘制折线图的步骤和绘制柱状图类似,只需要将AddBar改为AddCurve,具体实现如下:

// 添加数据点
List<double> list = new List<double>();
list.Add(20);
list.Add(30);
list.Add(50);
list.Add(25);
list.Add(40);

// 创建折线图,并设置X轴和Y轴标题
GraphPane pane = zedGraphControl1.GraphPane;
pane.Title.Text = "折线图";
pane.XAxis.Title.Text = "X轴";
pane.YAxis.Title.Text = "Y轴";

// 添加折线图对象
LineItem item = pane.AddCurve("数据", null, list.ToArray(), Color.Blue, SymbolType.Circle);
item.Line.Width = 2;

// 更新控件并重绘
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();

6.绘制扇形图

绘制扇形图需要先将数据转换成PieItem类型,具体实现如下:

// 添加数据点
List<double> list = new List<double>();
list.Add(20);
list.Add(30);
list.Add(50);
list.Add(25);
list.Add(40);

// 创建扇形图,并设置标题
GraphPane pane = zedGraphControl1.GraphPane;
pane.Title.Text = "扇形图";

// 添加扇形图对象
PieItem item = new PieItem("数据", list.ToArray(), Color.Blue);
item.LabelType = PieLabelType.Name_Value_Percent;

// 添加饼图对象到图表
pane.CurveList.Add(item);

// 更新控件并重绘
zedGraphControl1.AxisChange();
zedGraphControl1.Invalidate();

示例

以下是一个简单的使用ZedGraph绘制柱状图的示例:

private void button1_Click(object sender, EventArgs e)
{
    // 添加数据点
    List<double> list = new List<double>();
    list.Add(20);
    list.Add(30);
    list.Add(50);
    list.Add(25);
    list.Add(40);

    // 创建柱状图,并设置X轴和Y轴标题
    GraphPane pane = zedGraphControl1.GraphPane;
    pane.Title.Text = "柱状图";
    pane.XAxis.Title.Text = "X轴";
    pane.YAxis.Title.Text = "Y轴";

    // 添加柱状图对象
    BarItem item = pane.AddBar("数据", null, list.ToArray(), Color.Blue);
    item.Bar.Fill = new Fill(Color.Blue, Color.White, Color.Blue);

    // 更新控件并重绘
    zedGraphControl1.AxisChange();
    zedGraphControl1.Invalidate();
}

若要绘制折线图和扇形图,则只需要根据上面的示例进行修改即可。

总结

使用ZedGraph库可以方便地在C#中绘制出各种统计图,这些图形需要我们提供数据点和一些基本的设置。通过仔细地设置和调整,可以制作出专业的、有吸引力的统计图,用于数据展示和分析。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 绘制统计图大全(柱状图, 折线图, 扇形图) - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • .net开发人员常犯的错误分析小结

    . 标题 文章需要明确的标题,可以让读者对文章有更好的期望值和阅读方向。在这篇文章中,我们可以使用类似于以下的文章标题: .NET开发人员常犯的错误分析小结 . 介绍 接下来,我们需要在文章的开头引入一段简短的介绍,让读者明白文章的主旨并有信心继续阅读,可以用以下的段落: 随着 .NET 技术的发展,越来越多的开发人员选择使用 .NET 技术来开发应用程序。…

    C# 2023年5月31日
    00
  • 如何判断 .NET Core 应用程序以管理员身份运行的

    如何判断 .NET Core 应用程序以管理员身份运行 在本攻略中,我们将深入讲解如何判断 .NET Core 应用程序以管理员身份运行,并提供两个示例说明。 判断 .NET Core 应用程序以管理员身份运行的方法 以下是判断 .NET Core 应用程序以管理员身份运行的方法: 使用WindowsIdentity.GetCurrent方法获取当前用户的W…

    C# 2023年5月17日
    00
  • asp.net core集成CKEditor实现图片上传功能的示例代码

    ASP.NET Core 是一个跨平台、高性能的开源框架,用于 Web 应用程序的构建。CKEditor 是一个功能强大的 WYSIWYG 编辑器,可以支持图像上传功能。在 ASP.NET Core 中集成 CKEditor 实现图片上传功能的过程并不复杂。以下是示例代码: 集成 CKEditor 首先,我们需要在 ASP.NET Core 项目中安装 CK…

    C# 2023年6月3日
    00
  • C#判断字符编码的方法总结(六种方法)

    下面将为您详细讲解:“C#判断字符编码的方法总结(六种方法)”。 一、背景 在日常开发中,我们经常会遇到字符编码的问题。如何判断一个字符串的字符编码,对于程序性能和正确性都很重要。本文将深入探究C#中判断字符编码的六种方法。 二、方法一:通过Encoding类判断字符编码 C#内置有一个Encoding类,它包含了多种常见的编码方式。我们可以通过Encodi…

    C# 2023年6月7日
    00
  • c#中var关键字用法浅谈

    C#中var关键字用法浅谈 在C#中,var关键字可以用于自动类型推断。它被用来声明一个变量,让编译器根据右侧的值来推断变量的类型,可以在某些情况下帮助简化代码,提高可读性。 var的使用 使用var的语法格式如下: var variableName = initialValue; 在这里,我们声明一个变量variableName,并给它赋予一个初始值ini…

    C# 2023年6月7日
    00
  • C#清除WebBrowser中Cookie缓存的方法

    C#清除WebBrowser中Cookie缓存的方法 在C#中,如果我们需要在WebBrowser控件中清除Cookie缓存,可以按照以下步骤进行操作: 第一步:导入命名空间 首先需要导入System.Windows.Forms和System.Runtime.InteropServices两个命名空间,代码如下: using System.Windows.F…

    C# 2023年6月8日
    00
  • asp.net 序列化and反序列化演示

    下面我来为你详细讲解一下 “ASP.NET 序列化和反序列化演示” 的攻略。 简介 在 ASP.NET 开发中,序列化和反序列化是一个非常重要的操作。序列化可以将对象转化为字节流或者xml格式,并存储在内存或者文件中。反序列化则是将字节流或者xml格式的数据重新转化为对象。序列化和反序列化通常用于跨应用程序或网络传输对象时使用,例如:通过web服务发送和接收…

    C# 2023年6月3日
    00
  • NetCore 配置Swagger的详细代码

    以下是“NetCore配置Swagger的详细代码”的完整攻略: 什么是Swagger Swagger是一种API文档生成工具,它可以自动生成API文档,并提供一个交式UI,使开人员可以轻松地测试API。 配置Swagger的详细代码 配置Swagger的详细代码包括以下步骤: 安装Swashb.AspNetCore NuGet包。 在Startup.cs文…

    C# 2023年5月12日
    00
合作推广
合作推广
分享本页
返回顶部