Web图表开发--用ChartDirector画证券走势图

JavaScript制作网页数据图表/曲线图 这是几个JS做的,界面一般吧,不过普通的够用,我下篇介绍几个FLASH的,功能好些的这里面有用JQuery的,wz_jsgraphics,等,看爱好了                   高效的数据展示效果,能够让用户很快理解和领悟那些既复杂又索然无味的统计信息。例如,将大数据量的信息点阵化和图表化,或许能够替换掉在网页(或Web应用程序)上以表格形式来表现数据这种古老的方式。目前,已 阅读详情

最近给客户做一个B/S架构的证券交易大屏幕软件,其中用到对证券指数的走势以及成交量的图形绘制,由于客户要求图形的清晰而且要做成于原来的老系统一样的图形显示效果,就试着用ChartDirector进行图形绘制,下面说个人绘制的走势图主要代码(有所修改):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
using ChartDirector;
 
      //生成图形数据信息,iWidth:与画布有关的宽度,iHeight:与画布有关的高度,dlChartData:Y轴数据
         private XYChart GetTrendChart( int iWidth, int iHeight, double [] dlChartData)
         {
             try
             {
                   /***********此处代码仅供参考,个人取得画第一个点时从Y轴的中心开始,并且对应证券开盘时间******************/
                 double dlLin = dlChartData[0];
                 double dlMax = dlChartData[0];
                 //X轴数据
                 string [] XData = new string [2880];
                 for ( int i = 0; i < dlChartData.Length; i++)
                 {
                     XData[i] = " " ;
 
                     //取最小数据
                     if (dlChartData[i] < dlLin)
                         dlLin = dlChartData[i];
 
                     //取最大数据
                     if (dlChartData[i] > dlMax)
                         dlMax = dlChartData[i];
                 }
 
                 //继续给未赋值的数据赋值
                 for ( int i = dlChartData.Length; i < 2880; i++)
                 {
                     XData[i] = " " ;
                 }
 
                 //最小数、最大数相对于第一个点的浮动大小
                 double dlFir = Math.Abs(m_KPNum - dlLin);
                 double dlSec = Math.Abs(m_KPNum - dlMax);
                 double dlFloat = dlFir > dlSec ? dlFir : dlSec;
 
             /**********************************************/
 
             /*****************开始画图***********************/
 
                 // 创建图形对象
                 XYChart c = new XYChart(iWidth, iHeight);
 
                 //设置Y轴
                 double dMin = Math.Round(m_KPNum - dlFloat, 2);
                 double dMax = Math.Round(m_KPNum + dlFloat, 2);
                
                 if ((dMax - dMin) < dlChartData[0] * 0.5)
                 {
                     dMax = Math.Round(dlChartData[0] + dlChartData[0] * 0.5,2);
                     dMin = Math.Round(dlChartData[0] - dlChartData[0] * 0.5,2);
                 }
                 
                   //设置Y轴的取值范围
                 c.yAxis().setDateScale(dMin, dMax);
 
                   //设置Y轴要显示的网格线的个数为4
                 c.yAxis().setLinearScale(dMin, dMax, (dMax - dMin) / 4);
 
                  //c.yAxis().setLabel();Y轴设置过Label后就不能自动生成曲线图了,需要自己去添加线层
                 //c.yAxis().setLabelGap(10);//设置Y轴标签之间的缝隙
                 //c.yAxis().setLabelStep((int)(dMax-dMin)/10);//设置Y轴标签数组的显示跨度
                 //c.yAxis().setLabelFormat("{value}%");//格式化标签显示内容
                 ////设置网格上边和标题下边的区域大小为(50, 30),字横向排列,字体为宋体,大小为9  
                 //c.addLegend(50, 30, false, "Arial Bold", 9).setBackground(Chart.Transparent); 
 
                
                 //设置与Y轴相关的颜色,其中最后一个参数为设置Y轴伸出坐标的小头的颜色,一般不想要的话就设置成画布的背景色
                 c.yAxis().setColors(0xff0000, 0xff0000, 0xff0000, 0);
                 //设置Y轴标签样式
                 c.yAxis().setLabelStyle( "simhei.ttf" , 8, 0xFFFFFF);
 
                 //设置Y轴标签的颜色(前两个和最后一个颜色各自相同,中间一个为白色)
                 c.yAxis().setMultiFormat(Chart.SelectItemFilter(0), "<*color=23ff45*> {value}" );
                 c.yAxis().setMultiFormat(Chart.SelectItemFilter(1), "<*color=23ff45*> {value}" );
                 c.yAxis().setMultiFormat(Chart.SelectItemFilter(2), "<*color=FFffFF*> {value}" );
                 c.yAxis().setMultiFormat(Chart.SelectItemFilter(3), "<*color=ff2345*> {value}" );
                 c.yAxis().setMultiFormat(Chart.SelectItemFilter(4), "<*color=ff2345*> {value}" );
 
                 //设置X轴
                 //为了实现X轴上隔行变实现的效果,添加了几个标记
                 c.xAxis().addMark(720,0xff0000); //隔行实线
                 c.xAxis().addMark(1440, 0xff0000); //隔行实线
                 c.xAxis().addMark(2160, 0xff0000); //隔行实线
 
                 c.xAxis().setColors(0xff0000, 0xff0000, 0xff0000, 0);
                 c.xAxis().setLabelStyle( "simhei.ttf" , 5, 0xFFFFFF);
                 c.xAxis().setLabels(XData);
                 c.xAxis().setLabelStep(360
                 //设置标题
                 c.addTitle(Chart.Top, "上证指数" , "Arial" , 7.5, 0xffffff, 0x31319c);
        
 
                 //绘制曲线图所需的数据
                 c.addLineLayer(dlChartData,0xffffff);
 
                 //设置背景色为白色 横坐标和纵坐标的网格线颜色,其中参数三和参数四为画布的颜色,参数八和参数九为设置网格线为虚线(这里需要的为一个枚举变量)
                 c.setPlotArea(47, 18, iWidth - 50, iHeight - 23, 0, -1, 0xff0000, c.dashLineColor(0xff0000, Chart.DotLine), c.dashLineColor(0xff0000, Chart.DotLine));
 
                 //设置背景
                 c.setBackground(0);     
 
                 return c;
             }
             catch (Exception e)
             {
                 throw e;
             }
         }

好了这个就是用ChartDirector实现一个虚线的网格线,并且隔行变实线,Y轴的标签显示不同的颜色,X轴显示的时间为正常的证券交易时间,曲线图为相应时间对应的数据(在前面注释部分提过)的图形,对于ChartDirector画图需要掌握它画图的原理,就能画出想要的图形对应的坐标标签,以下为提供的一些意见(仅供参考):

  1. 准备的Y轴的数据数组和X轴的标签数组建议相对应,这样才能确定在坐标轴上的某个点的位置是正确的位置
  2. ChartDirector画出的图形的起始位置是从X轴的原点开始,如果想要实现从X轴的某个点开始的话需要在X轴标签数组的前部分补空,在Y轴的数据数组相应的前部分补上Y轴的最小坐标(但会出现斜线上升的情况,这个就不太理想了)。
  3. 对于X轴图形的结束位置,需要的话要在数据数组后面部分补上相应的空值,这样就能使图形不至于顶到坐标轴的末尾。
  4. X轴的标签数组长度可以大于Y轴,Y轴数据数组长度最好不要大于X轴,因为这样图形就会显示不全。
  5. 设置Y轴的标签数据后,就不会自动生成图形了,需要自己添加图形层。
  6. 合理运用 c.xAxis().setLabelStep()这个方法。
eCharts 走势图 eCharts图标设计 。。制作走势图,这是本人整理出来,写了几个实例 立即下载

相关推荐

彩票走势图

这是一个彩票走势图,根据网上搜索的资源进行更改的,用了画布进行绘画每两点之间的走势,可以进行更改数据接口,以及绘画的格式

Web图表开发-用ChartDirector画饼状图

对比习惯于JFreeChart开发的人,这家伙显得简单、明了。ChartDirector画饼状图方法非常简单,只需简单的几个部署,下面是代码: Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

图表相关教程 1254

JS做的一个走势图

JS做的一个走势图,通过X/Y轴标点,连线,形成一个走势图

从零开始实现k线图走势图绘制(iOS实战篇)

上篇文章中,我们了解了走势图k线图绘制及的一些关键点,基于大家都懂期货股票这些东西的基础上去讲解的,说的也不够全面,这篇文章我们以实战为主,一步一步写出可以商业化的k线图。 一、什么是k线图? 1.k线图:有最新价、收盘价、开盘价、最高价、最低价、均价、卖量、买量等等。而我们需要展示给用户看的第一眼就是把它们全部绘制为k线图,直观。还有部分要转化为数值直接推动; 蜡烛:需要用到收盘价、开盘价

努力,可能成功!放弃,注定失败! 7564

RK3588交叉编译实战:从环境搭建到程序部署

本文详细介绍了在X86主机上为RK3588开发板搭建交叉编译环境的完整流程。从获取ARM工具链、配置sysroot,到实战编译Hello World和Qt应用程序,并提供了部署方法和常见问题解决方案。通过交叉编译,开发者可以在高性能PC上高效开发,并在ARM架构的RK3588上运行程序,大幅提升嵌入式开发效率。

weixin_29191669的博客 274

海上AI导航系统:技术架构与行业应用解析

计算机视觉与强化学习技术在海上导航系统中的应用正逐步改变传统航运业。通过多模态传感器融合技术,现代AI导航系统能够实现高精度的物体识别与实时路径规划,有效解决能见度依赖、决策延迟等核心痛点。以Orca AI的SeaPod系统为例,其结合了NVIDIA GeForce RTX 4070的边缘计算能力与多光谱协同识别技术,在恶劣环境下仍能保持稳定性能。这类系统不仅提升了航行安全性,还通过优化航线显著降低燃油消耗,在东京湾、马六甲海峡等繁忙水域展现出巨大价值。随着毫米波雷达融合方案的测试推进,未来海上导航将突破极

weixin_33597080的博客 354

[转]Web图表控件ChartDirector中文教程

Web图表控件ChartDirector中文教程上篇: 图表控件ChartDirector使用教程:如何画饼状图 图表控件ChartDirector使用教程:走势图绘制方法 图表控件ChartDirector使用教程:绘制仪表盘(含源码) 图表控件ChartDirector使用教程:坐标设置详解(代码示例) 图表控件ChartDirector使用教程:绘制证券走势图的技巧总结...

dianxianbao8403的博客 270

TMC5130/TMC5160步进电机驱动芯片深度解析与工程实践

步进电机驱动芯片是精密运动控制系统的物理执行核心,其性能直接决定定位精度、运行噪声与系统鲁棒性。基于电流闭环控制与电压前馈调制的混合驱动原理,现代智能驱动芯片如TMC51X0系列实现了微步插补、堵转检测和片上运动规划等关键技术突破。这类芯片通过SPI寄存器级配置实现StealthChop静音驱动与SpreadCycle高动态响应模式的无缝切换,在3D打印、CNC、机器人关节等场景中显著提升能效比与控制带宽。本文围绕TMC5130与TMC5160的硬件架构差异、寄存器操作时序、驱动模式物理机制及FreeRTO

weixin_35797963的博客 409

Web图表控件ChartDirector中文教程一

Web图表控件ChartDirector教程(上): 图表控件ChartDirector使用教程:如何画饼状图 图表控件ChartDirector使用教程:走势图绘制方法 图表控件ChartDirector使用教程:绘制仪表盘(含源码) 图表控件ChartDirector使用教程:坐标设置详解(代码示例) 图表控件ChartDirector使用教程:绘制证券走势图的技巧总结 图表控

IBigPig 2043

嘉立创EDA报错:元件引脚与焊盘未对应报错解决记录

原件引脚与焊盘未对应报错解决方法,一文总结!

2303_77013775的博客 1万+

PyTorch实战:手把手教你用QAT量化感知训练拯救模型精度(附避坑指南)

本文详细介绍了如何使用PyTorch进行QAT量化感知训练,以提升模型在边缘设备上的推理精度。通过核心原理讲解、实战代码示例和避坑指南,帮助开发者掌握从环境配置、模型训练到边缘部署的全流程,有效解决传统量化方法导致的精度损失问题。

c7d8e的博客 329

JavaWeb ChartDirector 图表插件-web图表开发-ChartDirector资料

最近在学习Web 的图表开发,用到了JfreeChart和ChartDirector 。JfreeChart大家应该都很了解了,免费开源的,教程也很多。这里就不列举出来了,今天跟大家分享一些ChartDirector的东东! 一、相关资源 目前我的包是:ChartDirector.jar 版本:The latest version of ChartDirector is 5.1.1.。官方网站

china_demon的专栏 1603

Kerberos基础及KDC服务(理论知识)

kerberos基础理论讲解+KDC服务

Siobhan_Mxin的博客 9711

ChartDirector资料小结

最近在学习Web 的图表开发 用到了JfreeChart和ChartDirector JfreeChart大家应该都很了解了 免费开源的,教程也很多。这里就不列举出来了,今天跟大家分享一些ChartDirector的东东 官方网站:http://www.advsofteng.com 它的论坛可以提问,如果英文还可以的话直接在上面提问,回复挺及时的 ChartDirector破解及中文问题解...

weixin_30448603的博客 141

28、基准剂量法:原理、应用与计算详解

本文详细介绍了基准剂量法(BMD)的原理、在监管机构中的应用以及具体的计算方法。内容涵盖样本量与BMD的关系、主要监管机构如EPA对BMD的应用、BMD的模型选择与数据拟合过程、拟合优度评估、下置信限(BMDL)计算,以及实验设计对BMD结果的影响。同时,还讨论了剂量指标和响应选择的关键问题,为理解和应用基准剂量法提供了全面的参考。

info6的博客 280

uniapp | vue2 | vue3 - 解决调用天地图功能服务时 http 网络请求报错 net::ERR ABORTED 503(Service Temporarily Unavailabl)

vue,uni-app,天地图,请求报错,503,请求失败,map.tianditu,天地图503,天地图请求503,接口503错误怎么办,vue天地图,uniAPP天地图,获取定位接口服务器报错503,获取当前定位,定位功能,IP属地定位,天地图服务器报错,如何解决报错,net::ERRABORTED503(ServiceTemporarilyUnavailabl),GET,POST,服务暂时不可用,react天地图,一直等待吗,报错怎么办,定位报错,轨迹,经纬度,天地图服务器503,在vue2

🏆 前端领域优质创作者 4438

canvas画水平曲线走势图

window.onload = function () { var arr = [10, 50, 30, 70, 80, 40, 90, 110, 80, 60, 69, 85, 94, 100, 80, 70, 60, 50, 80, 10, 50, 30, 70, 80, 40, 90, 110, 80, 60, 69, 85, 94, 100, 80, 70, 60,

u011511086的专栏 4137

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ChartDirector V5.0 破解及中文

1、破解去掉黄色的注释       新建一个文件chartdir.lic,内容为  SXZVFNRN9MZ9L8LGA0E2B1BB ;將chartdir.lic放在项目的/WEB-INF/classes/chartdir.lic  重新项目,ok,黄色的log没有了 2、中文解决:         PieChart c = new PieChart(360,

liuyan_happy的专栏 2758

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

用C#开发的双色球走势图

双色球开奖数据个人也是从某网站抓取的,不保存到数据库,根据这些原始数据去分析双色球的走势,如有基本走势图、红球三分区走势图、红球四分区走势图、红球七分区走势图、红球连号走势图、和值走势图、篮球综合走势图和历史同期等等组成。           首先介绍双色球原始数据是如何获取的?这个对于各位来说都比较简单,就是获取HTML源码,根据HTML去提取相关信息。      

u012355740的专栏 3629

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

echarts 开发股票净值走势图记录

需求:使用echarts插件制作类似股票价值的图表。 先获取官网实例制作k线图,自己再自定义配置tooltip。 标记: 需要在图表上自定义标点,可使用 markPoint ;自定义标记对应数据, coord: [x轴值,对应数据value]。 自定义tooltip内容: 可使用 formatter ,可接收String or Function(params, ticket, callback)。 函数返回值,可返回html结构值。 先上代码: // 将获取到的json格式转换成所需要的格式 fun

oHuaLuoZhiDuoShao1的博客 1585

amCharts 股票走势图

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34342578的博客 387

前端 彩票开奖走势图的实现

彩票开奖走势图的实现页面结构js 部分效果图 做的是移动端的VUE + Vant。走势图每一条线都是一个canvas实现的 页面结构 部分参数我用“***”打个码,这里tbody动态创建, <table id="zstable"> <thead> <tr> <th

weixin_45461674的博客 5081
上一篇: Web图表开发--在Pythonr下如何安装ChartDirector
下一篇: Web图表开发--用ChartDirector画线形图
LemonAB
博客等级 码龄14年 4粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值