TNT blog |
|
|||
日歷
統計
導航常用鏈接留言簿(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對象的實例的方法: ? ? 三.時間 \ 值線連續圖,應用于股票的走勢圖 3.1 .如何放置時間 \ 值的一系列的數據, chart 采用類 XYSeriesCollection 來放置(x,y)格式的數據,對應的對象是 XYSeries chart 采用類 TimeSeriesCollection 來放置時間\值線的數據,對應的對象是 TimeSeries 可見 XYSeriesCollection 、 TimeSeriesCollection 類似集合容器類 ?
第一步:產生 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 |
![]() |
|
Copyright © TNT | Powered by: 博客園 模板提供:滬江博客 |