Winform & Devexpress Chart使用入门

时间:2023-03-08 23:02:13
Winform & Devexpress Chart使用入门

一、Chart(Winform)

使用图表控件(chart)首先要理解图表区域(ChartArea)、XY轴(AxisX、AxisY)、数据点(Series)、标题(Title)、图例(Legend)这几个之间的层次关系。

Winform & Devexpress Chart使用入门

图1:柱形图

从图1可以中内容,可以对Chart控件的组成有了一个简单的了解。
1.图表区域(ChartArea)
从图1中可以看出数据点、XY轴都是属于ChartArea的,这里是主要数据展示的区域。
2.XY轴(AxisX、AxisY)
XY轴的作用不用多说,具体的设置可以参考Demo中的代码。
3.数据点(Series)
圆饼图、散点图、柱形图等等都是由Series的属性设置的。
4.标题(Title)、图例(Legend)
这个作用不多说了,主要是进行一些相关属性的设置。
上点代码:
         /// <summary>
/// 饼图
/// </summary>
private void ChartPie()
{
//ChartArea
ChartArea chartArea = new ChartArea()
{
Name = "PieArea",
BorderWidth = ,
BorderDashStyle = ChartDashStyle.NotSet,
};
chartBar.ChartAreas.Clear();
chartBar.ChartAreas.Add(chartArea);
//Series
Series seriesBookA = new Series()
{
ChartArea = "PieArea",
Name = "书籍A销量",
Color = Color.Red,
Legend = "LegendBook",
Tag = "BookASaleCount",
ChartType = SeriesChartType.Pie,
XAxisType = AxisType.Primary,
XValueType = ChartValueType.DateTime,
IsValueShownAsLabel = true,
Label = "#VALY(#PERCENT{P0})",
};
chartBar.Series.Clear();
chartBar.Series.Add(seriesBookA);
//Point
double[] value = { };
DataPoint dataPoint = new DataPoint()
{
Name = "书籍A销售量",
Color = Color.Red,
YValues = value,
LegendText = "书籍A销售量:" + value[],
};
if (chartBar.Series.Count > )
{
chartBar.Series[].Points.Clear();
chartBar.Series[].Points.Add(dataPoint);
value = new double[] { };
chartBar.Series[].Points.Add(new DataPoint()
{
Name = "书籍B销售量",
Color = Color.Blue,
YValues = value,
LegendText = "书籍B销售量:" + value[],
});
value = new double[] { };
chartBar.Series[].Points.Add(new DataPoint()
{
Name = "书籍C销售量",
Color = Color.Pink,
YValues = value,
LegendText = "书籍C销售量:" + value[],
});
}
//Title
Title mainTitle = new Title()
{
Name = "MainTitle",
Text = "书籍销量",
Font = new Font("微软雅黑", , FontStyle.Regular, GraphicsUnit.Pixel),
ForeColor = Color.Blue,
Docking = Docking.Top,
IsDockedInsideChartArea = true,
};
chartBar.Titles.Clear();
chartBar.Titles.Add(mainTitle);
//Legend
Legend legend = new Legend()
{
Name = "LegendBook",
LegendStyle = LegendStyle.Table,
Docking = Docking.Bottom,
};
chartBar.Legends.Clear();
chartBar.Legends.Add(legend);
}

二、ChartControl(Devexpress)

Dev的ChartControl用法和 Winform的类似,但是更为灵活

Winform & Devexpress Chart使用入门

三、问题及解决方法

1.ChartControl(dev)饼图label重叠问题

Winform & Devexpress Chart使用入门

以下属性设置可解决此问题

Winform & Devexpress Chart使用入门

pieSeriesLabel1.Position = DevExpress.XtraCharts.PieSeriesLabelPosition.TwoColumns;
pieSeriesLabel1.ResolveOverlappingMode = DevExpress.XtraCharts.ResolveOverlappingMode.Default;

具体代码可以单击下载。