如何用ASP.NET+C#如何画一折线图或圆饼图?
环境是VS2005BETA(VS2003)中文版,数据可以从数据库中取。
本人是水平粗浅,请指教.
环境是VS2005BETA(VS2003)中文版,数据可以从数据库中取。
本人是水平粗浅,请指教.
解决方案 »
- 什么叫“无法在发送 HTTP 标头之后进行重定向。”?
- group by语句问题
- 请问在.NET1.1中,如何实现ToTable的功能?
- 问一个网站规划设计的工具
- 传入一个页面的值,然后再往里面传值的时候把第一次第二次的值都显示出来
- 怎样单个的.cs文件编译成.dll文件
- 菜鸟问题:如何在用户关闭页面时清除其在后台数据库的登录信息?
- 如何在关闭一个网页的同时打开一个新的网页呢
- WEBFORM 中的DataGrid在无数据时,只显示表头和表身.该如何在中间添加几行空白行?
- 小弟实现了绘制柱状图的程序 但是折线怎么图怎么画 求助各位大虾!!下帖代码:)
- 我用WINXP 宽带上网 我输入自己机子的IP,如:http://218.72.122.122/mis/default.htm
- 把一个项目从一台计算机移动到另一台计算机,高手们是怎么做的啊?
OWC.ChartSpace owcChartSpace=new OWC.ChartSpace();
OWC.WCChart owcChart=owcChartSpace.Charts.Add(0);
ADODB.Connection ConnADO = new ADODB.Connection();
ADODB.Recordset RecordsetADO = new ADODB.Recordset();
string connectionString = "Provider=MSDataShape;Data Provider=SQLOLEDB;uid=OAM;pwd=OAM;Data Source=bqsnet;initial catalog=oam";
ConnADO.Open(connectionString,"OAM","OAM",-1);
RecordsetADO.ActiveConnection = ConnADO;
RecordsetADO.CursorType = ADODB.CursorTypeEnum.adOpenStatic;
RecordsetADO.CursorLocation = ADODB.CursorLocationEnum.adUseClient;
string strSQL = "select * from student order by student";
RecordsetADO.Open(strSQL,ConnADO,ADODB.CursorTypeEnum.adOpenStatic,ADODB.LockTypeEnum.adLockReadOnly,0);
owcChartSpace.DataSource=(msdatasrc.DataSource)RecordsetADO;
owcChart.Type=OWC.ChartChartTypeEnum.chChartTypeColumnClustered; //柱状
// owcChart.Type = OWC.ChartChartTypeEnum.chChartTypeSmoothLineMarkers; //线状
owcChart.SetData(OWC.ChartDimensionsEnum.chDimSeriesNames,0,"student");
foreach (OWC.WCSeries owcSeries in owcChart.SeriesCollection)
{
owcSeries.SetData(OWC.ChartDimensionsEnum.chDimCategories,0,"test"); //X轴
owcSeries.SetData(OWC.ChartDimensionsEnum.chDimValues,0,"score"); //Y轴
}
foreach (OWC.WCAxis axis in owcChart.Axes)
{ //说明表示意义
owcChart.HasLegend=true;
owcChart.Legend.Position=OWC.ChartLegendPositionEnum.chLegendPositionBottom;
// owcChart.Legend.Font.Size=15;
//标题
owcChart.HasTitle=true;
owcChart.Title.Caption="学生成绩表";
//X,Y轴意义
axis.HasTitle=true;
if (axis.Type==ChartAxisTypeEnum.chCategoryAxis)
{
axis.Title.Caption="test";
}
else
{
axis.Title.Caption="score";
}
}
// owcChart.SeriesCollection[1].Interior.Color="red"; //改变颜色
// owcChart.SeriesCollection[1].Line.Color="red"; //改变颜色
Random rd=new Random();
int nfilenameSuffix;
string sfilenamesuffix;
nfilenameSuffix = 100000 * rd.Next();
sfilenamesuffix = Convert.ToString(nfilenameSuffix);
owcChartSpace.ExportPicture(MapPath("../Report/") + sfilenamesuffix + ".gif", "gif", 800, 600);
Image1.ImageUrl = "../Report/" + sfilenamesuffix + ".gif";
在using中加using OWC
dotnet.aspx.cc/ ShowDetail.aspx?id=221BC601-1A1B-4E1F-883D-04B043659703例子很全
你对ComponentOne感兴趣,可以学一下饼图// private void GetPieChart(DataView dv)
// {
// PointF[] data = new PointF[dv.Count];
// for (int i = 0; i < data.Length; i++)
// {
// float y = float.Parse((dv[i]["ProjectPreAmount"]).ToString());
// data[i] = new PointF(i, y);
// }
//
//
// //清除现有的饼
// ChartDataSeriesCollection dscoll = C1WebChart2.ChartGroups[0].ChartData.SeriesList;
// dscoll.Clear();
//
// for(int i=0; i < data.Length; i++)
// {
// ChartDataSeries series = dscoll.AddNewSeries();
// series.PointData.Length = 1;
// series.Y[0] = data[i].Y;
// series.Label=dv[i]["ProjectPreAmount"].ToString(); //设置Legend
//
//
// //加标签
//
// C1.Win.C1Chart.Label lbl = C1WebChart2.ChartLabels.LabelsCollection.AddNewLabel();
// lbl.Text = string.Format("{0}: ({1:c})",dv[i]["ChiName"], data[i].Y);
// lbl.Compass = LabelCompassEnum.Radial;
//
// lbl.Offset = 50;
// lbl.Connected = true;
// lbl.Visible = true;
// lbl.AttachMethod = AttachMethodEnum.DataIndex;
// AttachMethodData am = lbl.AttachMethodData;
// am.GroupIndex = 0;
// am.SeriesIndex = i;
// am.PointIndex = 0;
// }
//
// //设置离心的距离
//
// ChartData cd = C1WebChart2.ChartGroups.ChartGroupsCollection[0].ChartData;
// for(int i = 0; i < cd.SeriesList.Count; i ++)
// {
// cd.SeriesList[i].Offset = 30;
// }
// }
现在有几个问题:
1、必须要先生成JPG文件?
2、鼠标在图像上移动时能否提示如当前的纵坐标值?
3、此例若用来显示一实时商品报价走势,如产品甲,每10秒价格更新一次,联系报价4小时,
怎么做较好?对服务器压力最小(因为要考虑多并发数)?
做这个报价示例,若用JPG的方法,是否每次都要重画?也就是说是否每次画都要从头画一遍?还是
在原来的基础上画个点就行了?若这样做,又怎么做?欢迎大家赐教