owc组件如何实现多柱图 owc组件如何实现柱状图中横轴每项包含多个数据,比如要显示各年度大、中、小城市的人口增长率. 弄了好几天了,就是不行,望各位指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 www.wave12.com有各种图表图形的示例代码可以参考 <OBJECT id="ChartSpace1" classid="clsid:0002E556-0000-0000-C000-000000000046" VIEWASTEXT></OBJECT> <SCRIPT language="javascript"> //写柱状图 function body_onload() { var arrD=new Array(); var arrV1=new Array(); var arrV2=new Array(); var arrV3=new Array(); var sParams=""; //sParams=Form1.all.drpProduct.value; //----------------------chart1 by area----------------------------- /**//* var objhttp=new ActiveXObject("Microsoft.XMLHTTP"); var url=""; //url="GetXmlData.aspx?spName=sp_query_ui_areamove&valueString=" + sParams; //objhttp.open("GET",url,false); objhttp.send(); var sXml=objhttp.responseText; */ var sXml=Form1.all.hidXML.value; window.Form1.hidXML.value=''; //得到值后,把 Hidden 对象清空 //alert(sXml); //return; var xmlDoc = new ActiveXObject("Msxml2.DOMDocument"); var nodeList; xmlDoc.async = false; xmlDoc.loadXML(sXml); nodeList=xmlDoc.documentElement.selectNodes("//Total"); //这里应该写上DataTable的名称,我的DataTable的名称是"Total" var nCount=nodeList.length; var sTime=""; if (nCount>0) { //sTime=nodeList[0].childNodes[3].text; for (var i=0;i<nCount;i++) { arrD[i]=nodeList[i].childNodes[0].text; arrV1[i]=nodeList[i].childNodes[1].text; arrV2[i]=nodeList[i].childNodes[2].text; arrV3[i]=nodeList[i].childNodes[3].text/100; } } var myChart=Form1.all.ChartSpace1; myChart.Clear(); var a=myChart.Charts.Add(0); // 就是图对象的实例化 var c=myChart.Constants; // a.Type=c.chChartTypeColumnClustered; //添加 WO 柱状图 var cs=a.SeriesCollection.Add(0); cs.Caption="WO"; cs.SetData(c.chDimCategories,c.chDataLiteral,arrD); cs.SetData(c.chDimValues,c.chDataLiteral,arrV1); //添加 Yield Feedback Lot 柱状图 cs=a.SeriesCollection.Add(1); cs.Caption="Yield Feedback Lot"; //cs.SetData(c.chDimCategories,c.chDataLiteral,arrD); cs.SetData(c.chDimValues,c.chDataLiteral,arrV2); //添加 Ratio 柱状图 cs=a.SeriesCollection.Add(2); cs.Caption="Ratio"; cs.SetData(c.chDimCategories,c.chDataLiteral,arrD); cs.SetData(c.chDimValues,c.chDataLiteral,arrV3); cs.Type=c.chChartTypeLineMarkers; //添加右侧的百分比坐标,其中左侧和下面的坐标默认情况下,已经存在 cs.Ungroup(true); //表明是独立的坐标系统,否则将共用左侧坐标 ax=a.Axes.Add(cs.Scalings(c.chDimValues)); ax.NumberFormat="0.00%"; ax.Position=c.chAxisPositionRight; myChart.HasSelectionMarks=true; myChart.AllowFiltering=true; myChart.AllowPropertyToolbox=true; //定义柱状图的坐标系统的意义 a.Axes(c.chAxisPositionLeft).HasTitle=true; //左坐标代表 "Amount" 数量 a.Axes(c.chAxisPositionLeft).Title.Caption="Amount"; a.Axes(c.chAxisPositionLeft).Title.Font.Size=8; a.Axes(c.chAxisPositionBottom).HasTitle=true; //下坐标代表 "Product" 名称 a.Axes(c.chAxisPositionBottom).Title.Caption="Month"; a.Axes(c.chAxisPositionBottom).Title.Font.Size=8; a.Axes(c.chAxisPositionRight).HasTitle=true; //右坐标代表 "Ratio" 比率 a.Axes(c.chAxisPositionRight).Title.Caption="Ratio"; a.Axes(c.chAxisPositionRight).Title.Font.Size=8; //a.Axes(c.chAxisPositionRight).MajorUnit=0.1; a.HasLegend=true; a.Legend.Position=c.chLegendPositionTop; //a.HasTitle=true; //a.Title.Caption=" Move Report"; //a.Title.Font.Size=8; } </SCRIPT> see My Blog两种实现方法http://sunnyzhao.cnblogs.com/articles/213302.html http://evget.com/articles/evget_1050.html/楼主可以去看看这个啊! //创建ChartSpace对象来放置图表 Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass (); //在ChartSpace对象中添加图表,Add方法返回chart对象 Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add (0); //渐变色 objChart.PlotArea.Interior.SetTwoColorGradient(ChartGradientStyleEnum.chGradientDiagonalDown,ChartGradientVariantEnum.chGradientVariantEnd,"LightSkyBlue", "white"); //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到 objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered; //指定图表是否需要图例 objChart.HasLegend = true; //给定标题 objChart.HasTitle = true; objChart.Title.Caption= "上半年分布图"; //给定x,y轴的图示说明 objChart.Axes[0].HasTitle = true; objChart.Axes[0].Title.Caption = "Y : 数量"; objChart.Axes[1].HasTitle = true; objChart.Axes[1].Scaling.Maximum = 50; objChart.Axes[1].Scaling.Minimum = 0; objChart.Axes[1].Title.Caption = "X : 月份"; //计算数据 /*categories 和 values 可以用tab分割的字符串来表示*/ string strSeriesName = "图例 1"; 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 strSeriesName2 = "图例 2"; string strCategory2 = "1" + "\t" + "2" + '\t' + "3" + '\t'+"4" + '\t' + "5" + '\t' + "6" + '\t'; string strValue2 = "20" + "\t" + "18" + '\t' + "20" + '\t'+"20" + '\t' + "25" + '\t' + "16" + '\t'; ********************************就是这里,设置多个列*********************** //添加一个series objChart.SeriesCollection.Add(0); objChart.SeriesCollection.Add(1);****************************************************************** //给定series的名字 objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames, + (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类 objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories, + (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定值 objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues, (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); //给定series的名字 objChart.SeriesCollection[1].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames, + (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName2); //给定分类 objChart.SeriesCollection[1].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories, + (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory2); //给定值 objChart.SeriesCollection[1].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues, (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue2); //输出成GIF文件. string strAbsolutePath = "c:\\test.gif"; objCSpace.ExportPicture(strAbsolutePath, "GIF", 500, 300); pictureBox2.Image=Image.FromFile(strAbsolutePath); 想做个网站 如何能尽快搞定? repeater嵌套的repeater中的linkbutton怎么触发事件?? 如何传递控件的名字? 请各位高人指点一下连接SQlite的入门级问题! c#在asp.net网站上调用winform程序 Asp.net Ajax Control Toolkit起什么作用?在什么地方下载呢? 在线等待,自定义控件页面问题 急,在datagrid中实现编辑问题 Response.BinaryWrite 的问题 UrlRewriter 三级域名重写问题,急,在线等。。。。 请问如何在同一个工程里面使用两种语法(c#和vb) 移值ASP.NET应用程序的问题!
两种实现方法
http://sunnyzhao.cnblogs.com/articles/213302.html
/楼主可以去看看这个啊!
Microsoft.Office.Interop.Owc11.ChartSpace objCSpace = new Microsoft.Office.Interop.Owc11.ChartSpaceClass (); //在ChartSpace对象中添加图表,Add方法返回chart对象
Microsoft.Office.Interop.Owc11.ChChart objChart = objCSpace.Charts.Add (0);
//渐变色
objChart.PlotArea.Interior.SetTwoColorGradient(ChartGradientStyleEnum.chGradientDiagonalDown,ChartGradientVariantEnum.chGradientVariantEnd,"LightSkyBlue", "white"); //指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
objChart.Type = Microsoft.Office.Interop.Owc11.ChartChartTypeEnum.chChartTypeColumnClustered; //指定图表是否需要图例
objChart.HasLegend = true; //给定标题
objChart.HasTitle = true;
objChart.Title.Caption= "上半年分布图"; //给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "Y : 数量";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Scaling.Maximum = 50;
objChart.Axes[1].Scaling.Minimum = 0;
objChart.Axes[1].Title.Caption = "X : 月份";
//计算数据
/*categories 和 values 可以用tab分割的字符串来表示*/
string strSeriesName = "图例 1";
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 strSeriesName2 = "图例 2";
string strCategory2 = "1" + "\t" + "2" + '\t' + "3" + '\t'+"4" + '\t' + "5" + '\t' + "6" + '\t';
string strValue2 = "20" + "\t" + "18" + '\t' + "20" + '\t'+"20" + '\t' + "25" + '\t' + "16" + '\t';
********************************就是这里,设置多个列***********************
//添加一个series
objChart.SeriesCollection.Add(0);
objChart.SeriesCollection.Add(1);
****************************************************************** //给定series的名字
objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
+ (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName); //给定分类
objChart.SeriesCollection[0].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
+ (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory); //给定值
objChart.SeriesCollection[0].SetData
(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
(int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue); //给定series的名字
objChart.SeriesCollection[1].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames,
+ (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName2); //给定分类
objChart.SeriesCollection[1].SetData (Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories,
+ (int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory2); //给定值
objChart.SeriesCollection[1].SetData
(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,
(int)Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral, strValue2);
//输出成GIF文件.
string strAbsolutePath = "c:\\test.gif";
objCSpace.ExportPicture(strAbsolutePath, "GIF", 500, 300); pictureBox2.Image=Image.FromFile(strAbsolutePath);