关于Chart控件 C# 自定义

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms.DataVisualization.Charting;

namespace PieChartLibrary
{
public class ViewProp
{
public Color[] SliceColors = null; // 饼图分片颜色
}

public class DataViewer
{
#region Data

public Dictionary<string, int> DataPoints = null; // 数据点列表
public ViewProp ViewProperty = null; // 绘图属性

#endregion
}

public class DrawPie
{
public List<DataViewer> DataList = null;

public void DrawPies(Chart chart)
{
if (DataList == null)
return;

// 创建和配置图例
Legend legend = new Legend();
legend.Docking = Docking.Bottom;
legend.Alignment = StringAlignment.Center;

foreach (DataViewer dataViewer in DataList)
{
// 创建新的数据系列
Series series = new Series();
series.ChartType = SeriesChartType.Pie;

// 设置饼图分片颜色并添加数据点
if (dataViewer.ViewProperty != null && dataViewer.ViewProperty.SliceColors != null)
{
List<Color> sliceColors = new List<Color>(dataViewer.ViewProperty.SliceColors);
int colorIndex = 0;

foreach (KeyValuePair<string, int> dataPoint in dataViewer.DataPoints)
{
// 创建数据点
DataPoint point = new DataPoint();
point.AxisLabel = dataPoint.Key; // 使用键作为标签
point.SetValueY(dataPoint.Value); // 使用值作为 Y 值

// 设置数据点颜色
if (colorIndex < sliceColors.Count)
{
point.Color = sliceColors[colorIndex]; // 设置数据点的颜色
colorIndex++;
}
// 设置饼图标签样式和线条颜色
series["PieLabelStyle"] = "Outside";
series["PieLineColor"] = "Black";
// 设置数据系列的标签格式为标签文本和百分比
series.Label = "#PERCENT{P0}";
series.Points.Add(point); // 添加数据点
}
}
series.Palette = ChartColorPalette.None;
series.IsVisibleInLegend = true; // 将数据系列显示在图例中

chart.Series.Add(series);// 添加数据系列

}

// 将图例添加到 Chart 控件上
chart.Legends.Add(legend);

}
}

 

----------------------------------------------------------------------------------------------------------------------------------------------------------

 


__EOF__

本文作者x欣x
本文链接https://www.cnblogs.com/wuchengyang/p/17917304.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   x欣x  阅读(76)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示