DevExpress ChartControl柱状图
C# 全选
/// <summary>
/// 显示柱状图图表
/// </summary>
/// <param name="data">数据源</param>
/// <param name="viewType">图表类型</param>
private void ShowChart(List<IndustryMoneyRankApi> data, ViewType viewType)
{
chartControl1.Series.Clear();
//在图表中间显示标题
chartControl1.Legend.AlignmentHorizontal = LegendAlignmentHorizontal.Center;
//十字线参数设置
this.chartControl1.CrosshairOptions.ShowArgumentLabels = true;//移动鼠标时动态显示Y轴数据标签
this.chartControl1.CrosshairOptions.ShowArgumentLine = true;//显示Y轴线
this.chartControl1.CrosshairOptions.ShowValueLabels = true;//移动鼠标时动态显示X轴数据标签
this.chartControl1.CrosshairOptions.ShowValueLine = true;//显示X轴线
Series Series2 = new Series("行业资金排行", viewType);
Series2.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True;//每个标签显示数据
Series2.Visible = true;
Series2.Label.TextPattern = "{V:0.00}亿";
Series2.Label.TextAlignment = StringAlignment.Far;
(Series2.Label as SideBySideBarSeriesLabel).Position = BarSeriesLabelPosition.Top;
//Series2.DataSource = data;//数据源
//Series2.ArgumentScaleType = ScaleType.Qualitative;
//Series2.ArgumentDataMember = "f14";// 以哪个字段进行显示
//Series2.ValueScaleType = ScaleType.Numerical;//数值类型
//Series2.ValueDataMembers.AddRange(new string[] { "f164" });// 如:柱状图里的柱的取值字段
Series2.Points.Clear();
data.ForEach(i =>
{
Series2.Points.Add(new SeriesPoint
{
Argument = i.f14,
Values = new Double[] { i.amount },
});
});
chartControl1.Series.Add(Series2);
//隐藏表格X,Y背景线
if (chartControl1.Diagram != null && chartControl1.Diagram is XYDiagram)
{
(chartControl1.Diagram as XYDiagram).AxisX.GridLines.Visible = false;//隐藏X轴线
(chartControl1.Diagram as XYDiagram).AxisY.GridLines.Visible = false;//隐藏Y轴线
(chartControl1.Diagram as XYDiagram).AxisY.Alignment = AxisAlignment.Near;
(chartControl1.Diagram as XYDiagram).AxisX.Alignment = AxisAlignment.Near;
(chartControl1.Diagram as XYDiagram).AxisX.Label.Angle = 0;
//(chartControl1.Diagram as XYDiagram).AxisX.Label.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True;
//(chartControl1.Diagram as XYDiagram).AxisX.Label.Staggered = true;
(chartControl1.Diagram as XYDiagram).AxisX.Label.Alignment = AxisLabelAlignment.Center;
}
//循环所有的柱状图,显示不同颜色
for (int i = 0; i < Series2.Points.Count; i++)
{
//获取的单个柱子
SeriesPoint mpoint = Series2.Points[i];
if (mpoint != null)
{
IndustryMoneyRankApi mrow = data[i];
if (mrow.amount > 0)
{
mpoint.Color = Color.Red;
}
else
{
mpoint.Color = Color.SpringGreen;
}
}
}
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网