一、演示效果图

二、操作步骤
这里我演示的是Winform的自定义控件。(创建一个文件夹CusContorl,在这个文件夹里创建自定义控件,文件夹名字自己自定义即可。)
1.创建自定义控件

2.使用自带echart控件,拖到自定义控件里,进行自定义。

3.设置图表类型-饼状图


4.设置图表样式

5.设置外边距和大小

6.最终显示

三、上代码
1.封装的代码
//饼状图
public partial class PieChart : UserControl
{
public PieChart()
{
InitializeComponent();
chart1.Dock = DockStyle.Fill;
DrawPie();
}
//绘制饼状图
private void DrawPie()
{
//标题
chart1.Titles.Add("异常类别");
chart1.Titles[0].ForeColor = Color.Black;
chart1.Titles[0].Font = new Font("微软雅黑", 16f, FontStyle.Regular);
//设置统计对象的统计图类型
chart1.Series[0].ChartType = SeriesChartType.Pie;
//准备数据
String[] PieX = {"功能","外观"};
int[] PieY = {0,0};
//设置XY轴上的值类型
chart1.Series[0].XValueType = ChartValueType.String;
chart1.Series[0].YValueType = ChartValueType.Int64;
//绑定数据
chart1.Series[0].Points.DataBindXY(PieX, PieY);
//鼠标移动到对应点显示数值
//chart1.Series[0].ToolTip = "#VAL"; //显示原始数值
}
//设置饼状图XY轴数值
public void SetPieXY(string[] pieX , int[] pieY)
{
//绑定数据
chart1.Series[0].Points.DataBindXY(pieX, pieY);
//显示百分比
Series series = chart1.Series[0];
double total = series.Points.Sum(point => point.YValues[0]);
foreach (DataPoint point in series.Points)
{
if (total > 0)
{
double percentage = (point.YValues[0] / total) * 100;
point.ToolTip = $"{point.AxisLabel}: {percentage:F0}%";
point.Label = $"{point.AxisLabel}: {percentage:F0}%";
}
}
}
}
2.在窗口添加并调用
(1)在工具箱有自己的创建的自定义控件,直接拖转到窗口界面就可以了
出现问题:如果不显示,可能是加载问题。
解决方法:自己代码先运行一下,关闭程序,此时在工具箱可以看到自己的自定义控件

(2)在自己的窗口代码里调用自定义控件,处理好XY轴数据,直接传值给 pieChart1.SetPieXY(X,Y).
//绘制扇形图
private void DrawPie()
{
int func = 50;
int appear = 10;
string[] pieX = {"功能","外观"};
int[] pieY = { func , appear };
pieChart1.SetPieXY(pieX , pieY);
}
Winform自定义控件实现Echarts饼状图示例
613

被折叠的 条评论
为什么被折叠?



