请问大家如何实现股票K线图式的图表???

cccpro 2004-06-17 01:23:48
请大家提供有关实现股票K线图式的图表的例子、控件和相关经验!
谢谢!!!
...全文
238 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yfchain 2004-08-12
  • 打赏
  • 举报
回复
mark....
cccpro 2004-06-18
  • 打赏
  • 举报
回复
先谢谢诸位!
Johnyin 2004-06-17
  • 打赏
  • 举报
回复
贴一个给你看看吧(省略了一些取数据源的代码)。
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Graphics
Imports System.Data
Imports System.Data.SqlClient


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'下面开始画图
Dim bmpW As Integer = 500 '图片宽度
Dim bmpH As Integer = 300 '图片高度

Dim objBmp As New Bitmap(bmpW, bmpH)
Dim objGraphics As Graphics

Dim blackPen As New Pen(Color.Black, 1)
Dim thickPen As New Pen(Color.Black, 2)

'临时变量

timesX = (bmpW - 20) / rowCount
timesY = (bmpH - 40) / maxValue




'从指定的objBitMap对象创建新图形对象objGraphics。
objGraphics = Graphics.FromImage(objBmp)
'清除整个绘图面并以指定白色为背景色进行填充。
objGraphics.Clear(Color.White)


'画坐标
objGraphics.DrawLine(blackPen, 10, 10, 10, bmpH - 10)
objGraphics.DrawLine(blackPen, 10, bmpH - 10, bmpW - 10, bmpH - 10)

'画刻度********************************************************************
'共画27个纵刻度(bmpH-30 是实际使用的y轴长度)每10个单位一个刻度
For i = 3 To 29
objGraphics.DrawLine(blackPen, 10, 10 * i, 13, 10 * i)
objGraphics.DrawString(System.Convert.ToInt32(maxValue / (bmpH - 30) * (30 - i) * 10), New Font("宋体", 7), New SolidBrush(Color.Black), New PointF(10, 10 * i))
Next
'共24个横向刻度
For i = 0 To 23
If i Mod 2 = 0 Then
objGraphics.DrawLine(thickPen, 10 + 20 * i, bmpH - 14, 10 + 20 * i, bmpH - 10)
Else
objGraphics.DrawLine(blackPen, 10 + 20 * i, bmpH - 13, 10 + 20 * i, bmpH - 10)
End If

Next
Dim tempDate As Date

For i = 1 To 11
tempDate = beginDate.AddDays(i * endDate.Subtract(beginDate).Days / 12)
objGraphics.DrawString(tempDate.Month & "/" & tempDate.Day, New Font("宋体", 8), New SolidBrush(Color.Black), New PointF(40 * i, bmpH - 9))
Next
'***************************************************************************
objGraphics.DrawString("日期", New Font("宋体", 8), New SolidBrush(Color.Black), New PointF(bmpW - 35, bmpH - 9))

'画箭头
objGraphics.DrawLine(blackPen, 10, 10, 5, 20)
objGraphics.DrawLine(blackPen, 10, 10, 15, 20)
objGraphics.DrawLine(blackPen, bmpW - 10, bmpH - 10, bmpW - 15, bmpH - 5)
objGraphics.DrawLine(blackPen, bmpW - 10, bmpH - 10, bmpW - 15, bmpH - 15)



Dim ptArray(10000) As PointF

For j = 0 To strFields.Length - 1


For i = 0 To rowCount - 1
'定义绘图曲线的所有点坐标
ptArray(i) = New PointF(10 + i * timesX, bmpH - 10 - ds.Tables(0).Rows(i).Item(j) * timesY)
Next

For i = 0 To rowCount - 2

objGraphics.DrawLine(New Pen(GetColor(j)), ptArray(i), ptArray(i + 1))

Next
objGraphics.DrawString(strFields(j), New Font("宋体", 10), New SolidBrush(GetColor(j)), New PointF(30, 20 * (j + 1)))
Next
objGraphics.DrawString(maxValue, New Font("宋体", 10), New SolidBrush(GetColor(j)), 0, 0)

objBmp.Save(Response.OutputStream, ImageFormat.Gif)
End Sub
chieftech 2004-06-17
  • 打赏
  • 举报
回复
http://mingyeh.blogone.net

看看我做的一个小东西
如果需要源码,请和我联系
guying999 2004-06-17
  • 打赏
  • 举报
回复
有个WebChart控件很不错,可以参考一下
如果需要的话可以发给你一个试试
liuyong_lll 2004-06-17
  • 打赏
  • 举报
回复
帮顶。。。。。。。
bitsbird 2004-06-17
  • 打赏
  • 举报
回复
http://finance.easychart.net/screenshot.gif
http://www.asp.net/ControlGallery/ControlDetail.aspx?Control=1802&tabindex=2
似乎要钱
活靶子哥哥 2004-06-17
  • 打赏
  • 举报
回复
试试dundaschart
whizstorm 2004-06-17
  • 打赏
  • 举报
回复
crystal reports
QQSugar 2004-06-17
  • 打赏
  • 举报
回复
水晶报表
luckweb 2004-06-17
  • 打赏
  • 举报
回复
微软件有个mschart控件,可以的,我很久以前用过,不过时间久了,找不到了,你上网上找找吧

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧