数据源自于XML文件,现在要做出一个柱形图表来显示..第一次做统计表,大概怎么做,请大家给个思路吧谢谢.
解决方案 »
- “yield”的使用???不明白???
- C#求函数 16进制字符串转byte 不带进位求和
- 运行出错,这么解决啊?急!急!!急!!
- 这里有一个求解80个皇后的程序,找到解平均需要200毫秒。但是有点bug?
- 请教请教!!如何获取打印纸一行的宽度
- ----------玫瑰园虚拟世界(我们公司的力作)------感兴趣的CSDN的朋友下载来玩玩吧---------
- 打印datagridvew 为什么总重复打第一页,好象没有停下来的时候,
- 在使用SqlConnection时出错?
- 是不是还是C# BUILDER 比vs好用啊?
- unity 物体碰撞抖动问题
- 使用backgroundworker程序崩溃,完整代码
- 全部偶数的集合与全部自然数的集合相等?
能够处理很多类型,比如线图,柱图等等
zedgraph,owc,ms chart等控件都可实现
参考
运行程序,结果如图17.27所示。dundas下载地址:
http://download.csdn.net/source/1672965
protected void btnMoreChart_Click(object sender, EventArgs e)
{
//创建ChartSpace对象来放置图表
OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass(); //是否显示图例
objCSpace.HasChartSpaceLegend = true;
objCSpace.ChartLayout = ChartChartLayoutEnum.chChartLayoutVertical; //在ChartSpace对象中添加图表,Add方法返回chart对象
OWC.ChChart objChart = objCSpace.Charts.Add(0);
//objChart.HeightRatio = 50;
//指定图为柱形图
//给定标题
objChart.HasTitle = true;
objChart.Title.Caption = "上半年分布图"; //给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : 月份";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : 数量";
objChart.Axes[1].MajorUnit = 2; //计算数据
/*categories 和 values 可以用tab分割的字符串来表示*/
string strSeriesName = "我的测试";
string strSeriesName1 = "LAR";
string strCategory = "1" + '\t' + "2" + '\t' + "3" + '\t' + "4" + '\t' + "5" + '\t' + "6" + '\t';
string strValue = "9" + '\t' + "8" + '\t' + "4" + '\t' + "10" + '\t' + "12" + '\t' + "6" + '\t';
//string strValue1 = "0.038%" + '\t' + ".034%" + '\t' + ".026%" + '\t' + ".036%" + '\t' + ".040%" + '\t' + ".033%" + '\t'; /*柱形图*/
//添加一个series
objChart.SeriesCollection.Add(0);
objChart.SeriesCollection[0].Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
//给定series的名字
objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,
(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类
objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimCategories,
(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定objChart[0]的值
OWC.ChSeries sDispDppm = objChart.SeriesCollection[0];
sDispDppm.SetData
(OWC.ChartDimensionsEnum.chDimValues,
(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); //在ChartSpace对象中添加图表,Add方法返回chart对象
OWC.ChChart objChart1 = objCSpace.Charts.Add(0); //图表占据整个图表工作区的50%,这个起作用,必须有多个图表
//objChart1.HeightRatio = 50;
//给定标题
objChart1.HasTitle = true;
objChart1.Title.Caption = "下半年分布图"; //数值轴的显示格式
objChart1.Axes[1].NumberFormat = "0.00%"; //数值轴的主要单位
objChart1.Axes[1].MajorUnit = 0.01; //重新定义坐标轴的最大刻度
if (iYAxis_Maximum > 0)
{
objChart1.Axes[1].Scaling.Maximum = iYAxis_Maximum;
objChart1.Axes[1].Scaling.HasAutoMaximum = false;
}
else
{
objChart1.Axes[1].Scaling.HasAutoMaximum = true;
} //重新定义坐标轴的最小刻度
if (iYAxis_Minmum > 0)
{
objChart1.Axes[1].Scaling.Minimum = iYAxis_Minmum;
objChart1.Axes[1].Scaling.HasAutoMinimum = false;
}
else
{
objChart1.Axes[1].Scaling.HasAutoMinimum = true;
} strSeriesName = "我的测试";
strSeriesName1 = "LAR";
strCategory = "1" + '\t' + "2" + '\t' + "3" + '\t' + "4" + '\t' + "5" + '\t' + "6" + '\t';
string strValue1 = "0.038%" + '\t' + ".034%" + '\t' + ".026%" + '\t' + ".036%" + '\t' + ".040%" + '\t' + ".033%" + '\t'; /*折线图*/
//再增加一个Series
OWC.ChSeries sDispLar = objChart1.SeriesCollection.Add(0); //系列样式
sDispLar.Type = OWC.ChartChartTypeEnum.chChartTypeLineMarkers; //显示系列坐标值
objChart1.SeriesCollection[0].DataLabelsCollection.Add();
objChart1.SeriesCollection[0].DataLabelsCollection[0].NumberFormat = "0.00%";
objChart1.SeriesCollection[0].DataLabelsCollection[0].HasValue = true; //给定series的名字
sDispLar.SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,
(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName1); //给定分类
objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimCategories,
(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定objChart[1]的值
sDispLar.SetData
(OWC.ChartDimensionsEnum.chDimValues,
(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strValue1);
//输出成GIF文件.
string strAbsolutePath = (Server.MapPath(".")) + "\\Temp\\test.png";
objCSpace.ExportPicture(strAbsolutePath, "PNG", 600, 350);
//创建GIF文件的相对路径.
string strRelativePath = "./Temp/test.png"; //显示图片
Image1.ImageUrl = strRelativePath.ToString();
}
objChart1.SeriesCollection[0].DataLabelsCollection[0].HasValue = true;就是这句
当然可以的 dundas功能非常强大 要加上数字的话就需要在代码里面多做些改动了 要稍微复杂点 上面就是给你举个例子 楼主自己去研究研究吧 这会儿有点忙 没空跟你写那个例子 抱歉
圖上可以有文字的
好像叫TEXTOBJECT
找到你要的效果
仔細看一下代碼 就好了
Microsoft Chart Controls for Microsoft .NET Framework 3.5,
下载地址:
http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en