已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C# chart控件绘制多图表区图像想要根据数据库中记录个数动态决定chart控件的绘图区域,保证它们大小均匀,在网上找了N久么有发现满意答案,纠结了快一天的时间,终于把问题解决了,贴出来供大家分享O(_)O前面的代码中定义一个series对象数组: List listSer = new List();引发动态生成图表的按钮事件完整如下:private void button1_Click(object sender, EventArgs e) OCon Mycon = new OCon(); OracleConnection conn = Mycon.getCon(); conn.Open(); string sqlString = select count(*) from dotrelation where dotdesc like 2%路基%温度%; num = Mycon.countORL(conn, sqlString);/获得数据库中满足条件的记录数 /MessageBox.Show(满足条件的数据记录为 + num); int heightPer = 100 / num;/计算每个绘图区高度 for (int i = 0; i num; i+) string serName = test + i.ToString(); listSer.Add(new Series(serName);/对象数组 fillData(date);/初始化数组此方法自己定义的 initialSeries(Series)listSeri, Color.Red, date); chart1.ChartAreas.Add(ANOTHER + i);/这里是关键! chart1.ChartAreasi.Position.Width = 100;/绘图区域在控件中的宽度 100是百分比 chart1.ChartAreasi.Position.Height = heightPer; chart1.ChartAreasi.Position.X = 5;/绘图区域在控件中的绝对位置 横坐标 chart1.ChartAreasi.Position.Y = 3 + heightPer * i;/绘图区域在控件中的绝对位置纵坐标 chart1.ChartAreasi.AxisX.LineColor = Color.Blue; chart1.ChartAreasi.AxisY.LineColor = Color.Blue; chart1.ChartAreasi.AxisX.LineWidth = 2; chart1.ChartAreasi.AxisY.LineWidth = 2; chart1.ChartAreasi.AxisY.Title = 监测值; /设置网格线 chart1.ChartAreasi.AxisX.MajorGrid.LineColor = Color.Blue; chart1.ChartAreasi.AxisX.MajorGrid.Interval = 2;/网格间隔 chart1.ChartAreasi.AxisX.MinorGrid.Interval = 2; chart1.ChartAreasi.AxisY.MajorGrid.LineColor = Color.Blue; chart1.ChartAreasi.AxisY.MajorGrid.Interval = 2; chart1.ChartAreasi.AxisY.MinorGrid.Interval = 2; chart1.Seriesi.IsValueShownAsLabel = false; /是否显示数据 chart1.Seriesi.IsVisibleInLegend = false; /是否显示数据说明 chart1.Seriesi.MarkerStyle = MarkerStyle.Circle; /线条上的数据点标志类型 chart1.Seriesi.MarkerSize = 3; /标志大小 chart1.Seriesi.ChartType = SeriesChartType.Line; /图表类型为曲线 string name = ANOTHER + i.ToString(); chart1.Seriesi.ChartArea = name;/指定绘图区域 chart1.ChartAreasi.AxisX.LineColor = Color.Blue; /X轴颜色 chart1.ChartAreasi.AxisY.LineColor = Color.Blue; /Y轴颜色 chart1.ChartAreasi.AxisX.LineWidth = 2; /X轴宽度 chart1.ChartAreasi.AxisY.LineWidth = 2; /Y轴宽度 chart1.ChartAreasi.AxisY.Title = 人数; /Y轴标题 /fillData(date);/初始化数组 /initialSeries(series1, Color.Red, date); initalChart();/图表初始化 C#中CHART控件 简单示例: 后台代码: protected void Page_Load(object sender, EventArgs e) DataTable dt = default(DataTable); dt = CreateDataTable(); /设置图表的数据源 Chart1.DataSource = dt; /设置图表Y轴对应项 Chart1.Series0.YValueMembers = Volume1; Chart1.Series1.YValueMembers = Volume2; /设置图表X轴对应项 Chart1.Series0.XValueMember = Date; /绑定数据 Chart1.DataBind(); private DataTable CreateDataTable() /Create a DataTable as the data source of the Chart control DataTable dt = new DataTable(); /Add three columns to the DataTable dt.Columns.Add(Date); dt.Columns.Add(Volume1); dt.Columns.Add(Volume2); DataRow dr; /Add rows to the table which contains some random data for demonstration dr = dt.NewRow(); drDate = Jan; drVolume1 = 3731; drVolume2 = 4101; dt.Rows.Add(dr); dr = dt.NewRow(); drDate = Feb; drVolume1 = 6024; drVolume2 = 4324; dt.Rows.Add(dr); dr = dt.NewRow(); drDate = Mar; drVolume1 = 4935; drVolume2 = 2935; dt.Rows.Add(dr); dr = dt.NewRow(); drDate = Apr; drVolume1 = 4466; drVolume2 = 5644; dt.Rows.Add(dr); dr = dt.NewRow(); drDate = May; drVolume1 = 5117; drVolume2 = 5671; dt.Rows.Add(dr); dr = dt.NewRow(); drDate = Jun; drVolume1 = 3546; drVolume2 = 4646; dt.Rows.Add(dr); return dt; 浏览页面: private void showChart(Chart chart, double value) string xValue = A, B, C, D ; /设?置?标括?签? double yValue = value; /获?取?要癮显?示?的?值 chart.BorderSkin.SkinStyle = BorderSkinStyle.Emboss; /设?置?图?表括?边?框为a浮?雕?效果? chart.BorderlineDashStyle = ChartDashStyle.Solid; /设?置?图?表括?边?框为a实害?线? chart.BorderlineWidth = 1; /设?置?图?表括?边?框的?宽度 chart.Series0.ChartType = SeriesChartType.Pie; /设?置?图?表括?类?型为a饼纘图? chart.Series0.CustomProperties = DoughnutRadius=25, PieDrawingStyle=Concave, CollectedLabel=Other,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多模态数据融合与生物样本库的智能管理-1
- 2026年智能变色水下灯项目评估报告
- 2025年高职茶叶生产与应用(茶叶深加工技术)试题及答案
- 2025年中职电气控制(电气控制电路)试题及答案
- 2025年高职车辆维修(轮胎检测工具应用)试题及答案
- 2025年大学动物医学(动物解剖生理)试题及答案
- 2025年本科测绘工程技术(工程测量规范)试题及答案
- 2025年大学一年级(汉语言文学)文学鉴赏阶段测试题及答案
- 2025年高职护理(脉搏监测护理进阶)试题及答案
- 2025年高职(物流成本管理)费用控制设计试题及答案
- 2025-2026学年高三上学期《挑战极限青春无悔》主题班会课件
- 2025年科创板开通考试试题及答案
- 律师事务所绩效考核评分细则
- 变电站变压器吊装施工方案
- 民事检察案例汇报
- 断骨增高手术护理教程
- 2025秋季学期国开电大法学本科《国际私法》期末纸质考试简述题题库珍藏版
- 2025年道教传度考试题及答案
- 微机电系统(MEMS)技术 柔性微机电器件循环弯曲变形后电气特性测试方法 编制说明
- 小区充电桩转让合同范本
- (2025年标准)国债使用协议书
评论
0/150
提交评论