折线趋势图的实现方法

问题描述

VB.net2005里面怎么实现折线趋势图,一组整数的数组

解决方案

解决方案二:
给你一段我曾经画电流电压曲线图的代码,你参考下DimGAsGraphics'=PictureBox1.CreateGraphics()DimbmpAsNewBitmap(PictureBox1.Width,PictureBox1.Height)G=Graphics.FromImage(bmp)DimPAsNewPen(Color.Green,2)G.DrawLine(P,0,300,733,300)G.DrawLine(P,600,0,600,349)G.DrawLine(P,0,300,5,297)G.DrawLine(P,0,300,5,303)G.DrawLine(P,600,0,597,5)G.DrawLine(P,600,0,603,5)P.Width=1DimiAsLongDimWAsLong=30Fori=1To19G.DrawLine(P,600-W*i,0,600-W*i,300)NextFori=1To28G.DrawLine(P,0,300-10*i,600,300-10*i)IfiMod5=0ThenG.DrawString(i*10,NewFont("宋体",9),Brushes.Red,605,300-i*10-4)G.DrawString(i,NewFont("宋体",9),Brushes.Cyan,640,300-i*10-4)G.DrawString(i*4,NewFont("宋体",9),Brushes.Yellow,675,300-i*10-4)EndIfNextG.DrawString("0",NewFont("宋体",9),Brushes.White,605,305)G.DrawString("时间",NewFont("宋体",9),Brushes.White,5,305)G.DrawString("电压(V)",NewFont("宋体",9),Brushes.Red,605,5)G.DrawString("电流(A)",NewFont("宋体",9),Brushes.Cyan,623,19)G.DrawString("功率(KW)",NewFont("宋体",9),Brushes.Yellow,655,32)Fori=0To19P.Color=Color.RedG.DrawLine(P,600-i*W,300-CSng(DY(i))/100,600-(i+1)*W,300-CSng(DY(i+1)/100))NextPictureBox1.Image=bmp

解决方案三:
你看看这个对你有没有用SubcreateBG()'绘制饼图DimheightAsInteger=200DimwidthAsInteger=200DimbmpAsNewBitmap(width,height)DimgAsGraphics=Graphics.FromImage(bmp)DimpenAsPen=NewPen(Color.Black)DimoutlineAsRectangle=NewRectangle(0,0,height-5,width-5)g.SmoothingMode=SmoothingMode.AntiAliasg.Clear(Color.White)'绘制饼图'绘制一个由边框(该边框由一对坐标、高度和宽度指定)定义的椭圆g.DrawEllipse(pen,outline)'填充由一对坐标、一个宽度、一个高度以及两条射线指定的椭圆所定义的扇形区的内部'关键在第二,三个参数:从x轴到扇形边1的度数;从扇形边1到边2的读书,下面绘制了各占90度的图'g.FillPie(NewSolidBrush(Color.Red),outline,-20.0F,90.0F)'g.FillPie(NewSolidBrush(Color.Yellow),outline,70.0F,150.0F)'g.FillPie(NewSolidBrush(Color.Blue),outline,220.0F,100.0F)'g.FillPie(NewSolidBrush(Color.Green),outline,320.0F,20.0F)g.FillPie(NewSolidBrush(Color.Red),outline,0.0F,90.0F)g.FillPie(NewSolidBrush(Color.Yellow),outline,90.0F,90.0F)g.FillPie(NewSolidBrush(Color.Blue),outline,180.0F,90.0F)g.FillPie(NewSolidBrush(Color.Green),outline,270.0F,90.0F)bmp.Save(Page.Response.OutputStream,ImageFormat.Jpeg)g.Dispose()bmp.Dispose()EndSubSubcreateZG()DimheightAsInteger=200DimwidthAsInteger=200DimspaceAsInteger=20'原点到左边和下边的距离DimintervalAsInteger=20'单位长度Dimmax_xAsInteger=8'x轴最大刻度Dimmax_yAsInteger=8DimbmpAsNewBitmap(width,height)DimgAsGraphics=Graphics.FromImage(bmp)DimpenAsPen=NewPen(Color.Black,1)Dimpen_chartAsPen=NewPen(Color.Blue,12)'定义一组数据DimarrData()AsDouble={5.21,3.34,2.5,7.65,6.54,1.2,2.32,6.48}DimiAsIntegerg.SmoothingMode=SmoothingMode.AntiAliasg.Clear(Color.White)'g.DrawLine(pen,point1,point2)'Pen对象,它确定线条的颜色、宽度和样式。'Point结构,它表示要连接的第一个点。'Point结构,它表示要连接的第二个点。g.DrawLine(pen,NewPoint(space,height-space),NewPoint(width,height-space))'x轴g.DrawLine(pen,NewPoint(space,0),NewPoint(space,height-space))'y轴'x轴上的刻度Fori=0Towidth-intervalStepintervalIfi<=max_x*intervalThen'g.DrawString(string,Font,Brush,PointF)'String对象,要绘制的字符串。'Font对象,它定义字符串的文本格式。'Brush对象,它确定所绘制文本的颜色和纹理。'PointF结构,它指定所绘制文本的左上角。'可以单独先定义变量drawString,drawFont,drawBrush,drawPointg.DrawString(i/interval,NewFont("Arail",9,FontStyle.Regular),SystemBrushes.WindowText,NewPointF(space+i-5,height-space))EndIfNext'y轴上的刻度Fori=0Toheight-intervalStepintervalIfi<=max_y*intervalTheng.DrawLine(pen,NewPoint(space,height-i-space),NewPoint(space+5,height-i-space))Ifi<>0Theng.DrawString(i/interval,NewFont("Arial",9,FontStyle.Regular),SystemBrushes.WindowText,NewPointF(space-12,height-space-i-6))EndIfEndIfNext'柱形图Fori=0ToUBound(arrData)g.DrawLine(pen_chart,NewPoint(space+(i+1)*interval,height-space-arrData(i)*interval),NewPoint(space+(i+1)*interval,height-space))Next'输出结果bmp.Save(Response.OutputStream,ImageFormat.Jpeg)g.Dispose()bmp.Dispose()EndSubSubcreateZXG()DimheightAsInteger=200DimwidthAsInteger=200DimspaceAsInteger=20'原点到左边和下边的距离DimintervalAsInteger=20'单位长度Dimmax_xAsInteger=8'x轴最大刻度Dimmax_yAsInteger=8DimbmpAsNewBitmap(width,height)DimgAsGraphics=Graphics.FromImage(bmp)DimpenAsPen=NewPen(Color.Black,1)Dimpen_chartAsPen=NewPen(Color.Blue,2)'在此处设置折线宽度和颜色'定义一组数据DimarrData()AsDouble={5.21,3.34,2.5,7.65,6.54,1.2,2.32,6.48}DimiAsIntegerg.SmoothingMode=SmoothingMode.AntiAliasg.Clear(Color.White)'g.DrawLine(pen,point1,point2)'Pen对象,它确定线条的颜色、宽度和样式。'Point结构,它表示要连接的第一个点。'Point结构,它表示要连接的第二个点。g.DrawLine(pen,NewPoint(space,height-space),NewPoint(width,height-space))'x轴g.DrawLine(pen,NewPoint(space,0),NewPoint(space,height-space))'y轴'x轴上的刻度Fori=0Towidth-intervalStepintervalIfi<=max_x*intervalThen'g.DrawString(string,Font,Brush,PointF)'String对象,要绘制的字符串。'Font对象,它定义字符串的文本格式。'Brush对象,它确定所绘制文本的颜色和纹理。'PointF结构,它指定所绘制文本的左上角。'可以单独先定义变量drawString,drawFont,drawBrush,drawPointg.DrawString(i/interval,NewFont("Arail",9,FontStyle.Regular),SystemBrushes.WindowText,NewPointF(space+i-5,height-space))EndIfNext'y轴上的刻度Fori=0Toheight-intervalStepintervalIfi<=max_y*intervalTheng.DrawLine(pen,NewPoint(space,height-i-space),NewPoint(space+5,height-i-space))Ifi<>0Theng.DrawString(i/interval,NewFont("Arial",9,FontStyle.Regular),SystemBrushes.WindowText,NewPointF(space-12,height-space-i-6))EndIfEndIfNext'-----------------------------------以上同画柱状图---------------------------------------------'画折线图Fori=0ToUBound(arrData)-1g.DrawLine(pen_chart,NewPoint(space+i*interval,height-space-arrData(i)*interval),NewPoint(space+(i+1)*interval,height-space-arrData(i+1)*interval))'g.DrawLine(pen_chart,NewPoint(space+(i+1)*interval,height-space-arrData(i)*interval),NewPoint(space+(i+1)*interval,height-space))Nextbmp.Save(Response.OutputStream,ImageFormat.Jpeg)g.Dispose()bmp.Dispose()EndSub

解决方案四:
以上是绘制饼图,柱状图和折线图的例子
解决方案五:
up
解决方案六:
使用方法PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.ClickcreateBG()'画饼图EndSubPrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.ClickcreateZG()'画柱状图EndSubPrivateSubButton3_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton3.ClickcreateZXG()'画折线图EndSub

解决方案七:
谢谢各位,有没有控件来做这个,我这个趋势图比较复杂,XY轴都随时要变化
解决方案八:
MSChart控件可以动态的画图表,挺好用的。
解决方案九:
该回复于2008-11-05 18:56:33被版主删除
解决方案十:
up
解决方案十一:
TO:Caofusheng你的代码提示要声明,到底要声明哪些呢?比如:g.SmoothingMode=SmoothingMode.AntiAlias提示smoothingMode未声明,要如何声明呢?请指点,谢谢!
解决方案十二:
DimGAsGraphics'=PictureBox1.CreateGraphics()DimbmpAsNewBitmap(PictureBox1.Width,PictureBox1.Height)G=Graphics.FromImage(bmp)DimPAsNewPen(Color.Green,2)G.DrawLine(P,0,300,733,300)G.DrawLine(P,600,0,600,349)G.DrawLine(P,0,300,5,297)G.DrawLine(P,0,300,5,303)G.DrawLine(P,600,0,597,5)G.DrawLine(P,600,0,603,5)P.Width=1DimiAsLongDimWAsLong=30Fori=1To19G.DrawLine(P,600-W*i,0,600-W*i,300)NextFori=1To28G.DrawLine(P,0,300-10*i,600,300-10*i)IfiMod5=0ThenG.DrawString(i*10,NewFont("宋体",9),Brushes.Red,605,300-i*10-4)G.DrawString(i,NewFont("宋体",9),Brushes.Cyan,640,300-i*10-4)G.DrawString(i*4,NewFont("宋体",9),Brushes.Yellow,675,300-i*10-4)EndIfNextG.DrawString("0",NewFont("宋体",9),Brushes.White,605,305)G.DrawString("时间",NewFont("宋体",9),Brushes.White,5,305)G.DrawString("电压(V)",NewFont("宋体",9),Brushes.Red,605,5)G.DrawString("电流(A)",NewFont("宋体",9),Brushes.Cyan,623,19)G.DrawString("功率(KW)",NewFont("宋体",9),Brushes.Yellow,655,32)
解决方案十三:
to:taiji1982你这段代码运行没有错,不过,没有结果出来,怎么回事呢?
解决方案十四:
zedgraph控件也不错推荐一下
解决方案十五:
引用12楼limx001的回复:

to:taiji1982你这段代码运行没有错,不过,没有结果出来,怎么回事呢?

再顶一下!
解决方案:
不错,值得学习学习。

时间: 2024-08-30 18:51:44

折线趋势图的实现方法的相关文章

Android 常用效果(各种进度条,酷炫loading动画,火箭升空,撒花以及趋势图)

最近时间比较充裕一些,总结了下几个项目用到的ui效果,在这边共享给大家,也给自己做个记录(后面会有demo贴出).  主要是以下几种ui效果: 进度条多种展示 开源loading动画 火箭升空 撒花效果(仿微信) 气温趋势图 一.进度条  这边主要是有四种进度条展示,具体效果请往下看: 二.开源loading动画  这边有两种动画,来自于网上的开源demo,第一种是市场上app的比较常见动画,第二种是新版58的加载动画,具体效果请往下看: 三.火箭升空  这是在公司的一键清理项目中用到的一个动画

怎么在WordPress中插入Google 趋势图

本文主要就是给大家提供一个可以通过shortcode(短代码)直接把 Google 趋势图插入到 WordPress 站点页面或者文章中的方法.  代码如下 复制代码 我们可以通过以下代码实现:   <?php /* Author URI: http://www.111cn.net */ function wps_trend($atts){         extract( shortcode_atts( array(                 'w' => '500',        

HighCharts画时间趋势图,标示区以及点击事件操作

最近在用HighCharts画趋势图,如果按照设计文档上来画那太复杂了,于是根据自己多年的经验改动了设计文档,添加了highcharts的标示区,然而我也发现,最后一次画highchart趋势图还是在2年前,现在居然都不知道怎么画了(其实也不是不会画,只不过给的开发时间紧,而且我又是个急子,所以觉得加速完成,然而越急就越画不好,这点我离葛经理还差很远,所以要加强这方面的培训),熟悉之后才慢慢从它的API中解脱出来,下面贴代码吧: $(function () { $.fn.zTree.init($

Photoshop入门实例教程:简单拼贴图的制作方法

本教程介绍简单拼贴图的制作方法.大致过程:处理之前需要用网格及辅助线把素材均分成一些小方块,然后分别用选区把这些小方块复制到新的图层,适当给小方块描边并添加投影.最后把小方法变形处理,再改变背景颜色即可.原图 最终效果 [1] [2] [3]  下一页

位图转矢量图有哪些方法和技巧?

技巧 问:位图转矢量图有哪些方法和技巧? 答: 位图转矢量的方法很多,这里具体介绍以下几种: 第一种:完整安装Coreldraw(以下简称CD)会自带一个附件--Corel Power TRACE(以下简称CT),在CD中可以直接点击应用程序按纽调用CT.CT的使用比较简单,导入位图后,设置一下边界,点转换即可,一次不成再调整再转换,不过CT对于块面化的位图比较适合,对于复杂的位图就不是很好了,转换了也不是我们想要的结果. Coreldraw X3中整合了Corel Power TRACE,它使

教你用PS把美女照片打造成海报点阵图效果的方法

    下面为你介绍如何用PS把美女照片打造成海报点阵图效果的方法   1.新建一文件,如图所示:   2.将工具箱中的前景色设置为白色,选择工具箱中的"铅笔"工具,在属性栏中设置大小为"1像素"的笔头,然后在画面中绘制出如图所示的白色. 3.选择菜单栏中的"编辑""定义图案"命令,弹出"图案名称"对话框,设置名称如图所示. 4.打开一张海报如图所示. 5.按"Shift+Ctrl+U"

photos崩溃又没存图的救急方法

  关于PS工作中发生崩溃又没存图的救急,很长时间用PS程序都没崩溃,差点忘了这茬儿.昨天被虐的够呛,就截了几个屏顺手造福小伙伴们.Po主们用的Win8+PS CS6,其他版本是不是这样解决并不知道,大家可以遇到崩溃的时候试一试无妨.   一张图了解PS崩溃又没存图的救急方法. 分类: PS图片处理

qt语音图标点亮方法

  作为是腾讯旗下的多人语音交流工具,qt语音主要面向需团队协作的游戏用户,以及办公和家庭用户.那么,qt语音的图标该怎么点亮呢?下面,就和小编一起来看看吧. 1.下载qt语音后安装程序,然后运行QT语音,用自己的QQ账号登录. 2.这是打开qt语音的主界面,随便点击任意房间进入,这样就能获得个人积分增长​. 3.累积到一定的积分就能获得兑换券点亮QT语音图标(那么肯定会有朋友问,如何获得兑换券呢?,下面我截取官方网站的介绍给大家看). 4.当有了一张兑换券,登录点亮QT语音图标的网址(http

更改微聚个人空间主图背景的方法

  微聚是一款类似于微信的社交聊天软件,在软件推出以来受到了很多人的喜爱,不过有部分用户在使用过程中,发现无法对个人空间主题进行修改,其实微聚个人空间主题更换是非常简单的,下面看小编为大家带来的更换方法,希望对您有所帮助! 更改微聚个人空间主图背景的方法教程 1)安装并打开微聚.进入[个人空间]界面点击[主题背景].(如下图) 2)根据所需选择并点击自己喜欢的背景图.返回[个人空间]即可查看修改好的主题.(如下图) 通过上方简单的两步操作我们就能够更换微聚个人空间主图背景了