C#调用图表的使用方法

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms.DataVisualization.Charting;

namespace Chartdata

{

internal class Super_chart

{

private Chart chart=null;

public Super_chart(Chart data )

{

this.chart = chart;

}

/// <summary>

/// 绘制图表的通用方法

/// </summary>

/// <param name="chartType">图表显示的类型</param>

/// <param name="datalist">图表所需要的数据</param>

public void showChart(SeriesChartType chartType, List<chart_data>datalist)

{

//【1】清除所有的图表序列

this.chart .Series.Clear();

//【2】创建一个图表序列对象(一个图表,可以添加多个图表序列,也就是绘图对象)

Series series1=new Series();

//设置图表序列对象显示的类型

series1.ChartType=chartType;

//添加图表序列集合

this.chart .Series.Add(series1);

//【3】设置当前图表序列的各种属性值

for (int i = 0; i < datalist.Count; i++)

{

//获取数据对象的两个值

string text =datalisti.Text;

double value=datalisti.Value;

//使用x和y的值将DatePoint对象添加进去

series1.Points.AddXY(text, value);

//设置数据点显示内容

//鼠标放到标签上的提示

series1.Pointsi.LabelToolTip=value.ToString();

//鼠标放到图形上的提示

series1.Pointsi.ToolTip=value.ToString();

//根据图形样式设置显示的形式和内容

if (chartType == SeriesChartType.Pie)//饼形图

{

//设置标签显示的内容=x轴内容+value

series1.Pointsi.Label = "#AXISLABEL(#VAL)";

//x轴+百分比

series1.Pointsi.Label = "#AXISLABEL(#PERCENT)";

series1.Pointsi.Label = "#AXISLABEL(#VAL)(#PERCENR)";

//在外侧显示lable

series1"PieLabelStyle" = "Outside";

//在内存显示label

// series1"PieLabelStyle" = "Inside";

//绘制连线

series1"PieLineColor" = "Black";

}

else if (chartType == SeriesChartType.Doughnut)//圆环图

{

series1.Pointsi.Label = "#AXISLABEL (#PERCENT)";

//在内部显示label

series1"PieLabelStyle" = "Inside";

}

else //其他图像,显示百分比或者数值

{

series1.Pointsi.Label = "#AXISLABEL (#PERCENT)";

series1.Pointsi.Label = "#AXISLABEL(#VAL)";

}

if (chartType != SeriesChartType.Pie)

{

series1.Pointsi.AxisLabel=string.Format("{0}{1}",text,value);

}

}

//【4】设置图表绘图区域的x和y的坐标值(y表示具体要显示的数值之间的间隔)

//也可以设置成为20

this.chart.ChartAreas0.AxisY.Interval = 10;

//一般这里设置为1

this.chart.ChartAreas0.AxisX.Interval = 1;

}

}

}

相关推荐
言乐628 分钟前
Python实现语音审核模型
开发语言·python·django·virtualenv·pygame
朝朝辞暮i1 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起
开发语言·c++·算法
SHARK_pssm2 小时前
【C++——类和对象(下)】
开发语言·c++·经验分享·笔记
凯哥Java2 小时前
写代码怎么避免逻辑漏洞?
java·开发语言·人工智能·自动化
Ai-_Man2 小时前
您您这可以把Dola的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。用AI导出鸭,答案是可以的
开发语言·前端·人工智能·小程序
Java后端的Ai之路2 小时前
Python进阶探索23 - Python中的Time与Datetime模块
开发语言·数据库·python·datetime·time
沫璃染墨3 小时前
《从零入门Linux系统篇(五十四):线程篇·七——互斥锁底层原理:从原子交换到线程竞争与锁实现》
linux·运维·服务器·开发语言·c++·驱动开发·系统架构
Java后端的Ai之路3 小时前
Python进阶探索24_应用案例_linux系统的监控
linux·开发语言·python·应用·探索
程序员清风3 小时前
PydanticAI 实战:用类型安全构建可靠的 Python Agent
开发语言·python·安全
落魄实习生3 小时前
Agent Scope Java 2.x 系列【10】Middleware
java·开发语言·ai