TNT blog  
          日歷
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345
          統計
          • 隨筆 - 5
          • 文章 - 40
          • 評論 - 7
          • 引用 - 0

          導航

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          收藏夾

          home

          搜索

          •  

          最新隨筆

          最新評論

          閱讀排行榜

           
          ????????????????????????????????????????????????? ? 作者:酈春錦 杭州電子科技大學

          ????????????????????????????????????????????????????? ?msn lichunjin@hotmail.com

          ?

          研究目的是:利用 jfreechar 開發出類似證券之星的股票實時走勢圖

          具體地址 http://quote.stockstar.com/stock/external_quote.asp?code=shzs000001

          目前本人已經用 applet 實現類似的功能,由于 applet 的局限

          所以要進一步的開發,在此基礎上要采用圖片的形式。

          jfreechart 以下簡稱 chart ,

          一. Chart 的主要應用

          是在繪圖上,包括能夠繪制盤塊圖( pie charts )、柱狀圖( bar charts )、折線圖、曲線圖、時間 \ 值連續圖,包括各種 applet 小程序窗體以及 web 上的 jsp\servlet 程序

          ?

          二. Chart 的設計

          2.1 Chart在設計上采用靜態工廠模式ChartFactory,目的產生各種的圖表

          2.2 產生JFreeChart對象的實例的方法:
          ?? 1.工廠模式產生一個所需要繪畫圖形的實例,例如
          ?? JFreeChart chart = ChartFactory.createTimeSeriesChart(
          ??????????? "Weekly Data",
          ??????????? "Date",
          ??????????? "Value",
          ??????????? dataset,
          ??????????? true,
          ??????????? true,
          ??????????? false
          ??????? );
          ?? 2.直接new一個chart的構造方法
          ?? JFreeChart chart = new JFreeChart(null, JFreeChart.DEFAULT_TITLE_FONT, plot, true);

          ?

          ?

          三.時間 \ 值線連續圖,應用于股票的走勢圖

          3.1 .如何放置時間 \ 值的一系列的數據,

          chart 采用類 XYSeriesCollection 來放置(x,y)格式的數據,對應的對象是 XYSeries

          chart 采用類 TimeSeriesCollection 來放置時間\值線的數據,對應的對象是 TimeSeries

          可見 XYSeriesCollection 、 TimeSeriesCollection 類似集合容器類

          ?

          3.2. 股票圖生成的原理(一條線)

          第一步:產生 XYSeries 對象的實例,添加數據到 XYSeries ,并且產生一個參數為 XYSeries 對象的 XYSeriesCollection

          第二步:產生 StandardXYToolTipGenerator 對象的實例,設置 X 軸時間的顯示格式

          第三步:產生 StandardXYItemRenderer 對象的實例,設置繪畫圖形的方式,是點到點的繪畫,

          第四步:產生 XYPlot 對象的實例,數據格式設置成( x,y )的形式。

          ????????????? ?XYPlot plot = new XYPlot( 數據集合 , 時間 x , y , 繪畫圖形的方式 );

          最后一步:無論生成什么圖形,都必須產生 JFreeChart 對象的實例,

          ?????????????? ?JFreeChart chart = new JFreeChart( 標題 , 字體 ,plot, 是否生成圖例 );

          Servlet/jsp 可選功能:

          請求的時候生成圖片,可以是jpg和png格式

          //Write the chart image to the temporary directory

          ChartRenderingInfo? info=new? ChartRenderingInfo(new StandardEntityCollection());

          filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);

          ?

          3.3 .應用于股票的走勢圖的局限性

          由于股票數據是實時的,因此它表現出來的線是隨著時間的推移而前進

          但是 chart 目前只是根據讀入的數據的多少而動態繪制圖線,時間線不能固定的設置繪畫

          這是一個待解決的問題,這也是本次學習研究目的,加以改進!

          3.4 .期望的解決辦法

          更改底層 chart 的源代碼或者新增功能類

          ?

          四,深入chart

          4.1 時間軸的顯示:

          由于圖中必須畫一條昨日收盤線作為參考線。于是就把參考線一直畫到底,如此以來

          就能完整的表示一天的時間,就能解決3.3的問題

          ?

          4.2 數據篩選和顯示

          由于股票交易時間是9:30-11:30??和13:00-15:00。所以一方面要把時間軸中的停盤時間去掉

          另一方面,曲線必須連續而且不能存在數據的重疊,我剛開始試著把時間過濾掉,但chart是根據你的數據的時間點的數量進行調整的,所以顯示出來的時間軸并沒有很好的體現停盤時間的存在

          (具體體現停盤時間:時間軸9:30、15:00必須顯示,11:30和13:00同一個點,只要顯示其中一個值)

          我又重新研究了chart的demo,發現SegmentedHighLowChartDemo.java演示了如何排除休息日的時間

          相關的chartAPI的doc:SegmentedTimeline可以設定要排除的時間間隔!

          所以問題得到解決

          ?

          五,總結

          經過一個禮拜的學習和研究,jfreechart在生成各種數據分析圖片方面確實不錯,

          如果你的項目要用到此類應用,可以學習一下!也可以聯系我一起談論,

          ?

          粗糙chart作品:

          ?



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=60598

          posted on 2007-03-22 18:07 TNT 閱讀(2854) 評論(3)  編輯  收藏
          評論:
          • # re: jfreechar開發出類似證券之星的股票實時走勢圖  吳志明 Posted @ 2007-04-10 00:49
            一直都在找jfreechar的相關資料  回復  更多評論   

          • # re: jfreechar開發出類似證券之星的股票實時走勢圖[未登錄]  user Posted @ 2007-10-17 11:46
            是如何設定要排除的時間間隔?請教,非常急啊  回復  更多評論   

          • # re: jfreechar開發出類似證券之星的股票實時走勢圖  難題 Posted @ 2009-10-08 08:03
            你好!我目前有一些問題想請教你一下,可否指點??!qq:37079765  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
           
          Copyright © TNT Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 荥经县| 海淀区| 长垣县| 军事| 萍乡市| 大田县| 通道| 宜州市| 托里县| 富裕县| 平乐县| 观塘区| 二连浩特市| 姜堰市| 图们市| 海口市| 津市市| 崇义县| 依兰县| 荃湾区| 台前县| 保定市| 麻江县| 潍坊市| 汾阳市| 凯里市| 太原市| 牟定县| 灌云县| 沙坪坝区| 盐城市| 东莞市| 龙游县| 双流县| 开远市| 明星| 麻阳| 同心县| 阳泉市| 绥棱县| 海伦市|