亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP實現股票趨勢圖和柱形圖

2024-05-04 23:30:59
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP實現股票趨勢圖和柱形圖,本文效果基于pchart類庫實現,給出實現代碼和效果圖,需要的朋友可以參考下

基于強大的pchart類庫。

 

 
  1. <?php 
  2.  
  3. /* 
  4. * 股票趨勢圖和柱形圖 
  5. * @author: Skiychan <developer@zzzzy.com> 
  6. * @created: 02/05/2015 
  7. */ 
  8.  
  9. include "libs/pData.class.php"
  10. include "libs/pDraw.class.php"
  11. include "libs/pImage.class.php"
  12.  
  13. include "database.php"
  14.  
  15. include "libs/convert.php"
  16. date_default_timezone_set('Asia/Shanghai'); 
  17.  
  18. /* 
  19. * @param type line/other 趨勢圖/柱形圖 默認趨勢圖 
  20. * @param txt 1/other 顯示/不顯示 提示文字 默認不顯示 
  21. * @param lang hk/cn 繁體中文/簡體中文 默認繁體 
  22. * @param id int 股票編號 必填 
  23. * @param min int 最小時間 默認無 
  24. * @param max int 最大時間 默認無 
  25. */ 
  26.  
  27. $type = isset($_GET['type']) ? $_GET['type'] : 'line'
  28. $showtxt = (isset($_GET['txt']) && ($_GET['txt'] == 1)) ? true : false; 
  29.  
  30. //設置語言 
  31. if (isset($_GET['lang'])) { 
  32. $lang = $_GET['lang'] == 'cn' ? 'cn' : 'hk'
  33. else { 
  34. $lang = 'hk'
  35. }  
  36.  
  37. $desc_tip = array
  38. 'hk' => array
  39. 'line' => array("昨日收盤價""股價"), 
  40. 'bar' => "總成交量:" 
  41. ), 
  42. 'cn' => array
  43. 'line' => array("昨日收盤價""股價"), 
  44. 'bar' => "總成交量:" 
  45. ); 
  46.  
  47. $id = isset($_GET['id']) ? (int)$_GET['id'] : 1; //股票編碼 
  48.  
  49. //條件 
  50. $wheres = "where stock_no = ".$id
  51.  
  52. //最小時間 
  53. if (isset($_GET['min'])) { 
  54. $wheres .= " and `created` >= ".(int)$_GET['min']; 
  55. //最大時間 
  56. if (isset($_GET['max'])) { 
  57. $wheres .= " and `created` <= ".(int)$_GET['max']; 
  58. $wheres .= " order by created"
  59.  
  60. $sth = $dbh->prepare("SELECT * FROM $tb_name " . $wheres); 
  61. $sth->execute(); 
  62. $results = $sth->fetchAll(PDO::FETCH_ASSOC); 
  63.  
  64. if ($lang == 'hk') { 
  65. $ttf_path = "fonts/zh_hk.ttc"
  66. else { 
  67. $ttf_path = "fonts/zh_cn.ttf"
  68.  
  69. //初始化 
  70. $line2 = array(); //股價 
  71. $bar = array(); //成交量 
  72. $times = array(); //時間 
  73.  
  74. foreach ($results as $keys => $values) : 
  75. $line2[] = $values['current_price']; 
  76. $bar[] = $values['volume']; 
  77.  
  78. //只顯示整點的標簽 
  79. if ($keys % 4 == 0) { 
  80. $times[] = $values['created']; 
  81. else { 
  82. $times[] = VOID; 
  83.  
  84. endforeach
  85.  
  86. $l2counts = count($line2); 
  87.  
  88. $myData = new pData(); 
  89.  
  90. //如果是線型圖 
  91. if ($type == "line") { 
  92.  
  93. //取股票名稱  
  94. $stock_sth = $dbh->prepare("SELECT `name` FROM `tbl_stock` WHERE `code` = {$id}"); 
  95. $stock_sth->execute(); 
  96. $stock_info = $stock_sth->fetch(PDO::FETCH_ASSOC); 
  97.  
  98. $func_name = "zhconversion_".$lang
  99. //$stock_name = $func_name($stock_info['name']); 
  100. $stock_name = "某某公司"
  101.  
  102. //取出最值 
  103. $sql = "SELECT MIN(`current_price`) xiao, MAX(`current_price`) da FROM $tb_name $wheres"
  104. foreach ($dbh->query($sql, PDO::FETCH_ASSOC) as $row) { 
  105. $bottom = (int)$row['xiao'] - 2; 
  106. $top = (int)$row['da'] + 2; 
  107.  
  108. //昨日收盤價 
  109. $l1s = array(); 
  110. for ($i = 1; $i <= $l2counts$i++) { 
  111. $l1s[] = 130; 
  112.  
  113. $myData->addPoints($l1s"Line1"); 
  114. $myData->addPoints($line2"Line2"); 
  115.  
  116. $myData->setPalette("Line1",array("R"=>51,"G"=>114,"B"=>178)); 
  117. $myData->setPalette("Line2",array("R"=>0,"G"=>255,"B"=>0)); 
  118.  
  119. $myData->setAxisPosition(0, AXIS_POSITION_RIGHT); 
  120. $myData->addPoints($times"Times"); 
  121. $myData->setSerieDescription("Times","Time"); 
  122. $myData->setAbscissa("Times"); 
  123. $myData->setXAxisDisplay(AXIS_FORMAT_TIME,"H:i"); 
  124.  
  125.  
  126. $myPicture = new pImage(480, 300, $myData); 
  127.  
  128. //設置默認字體 
  129. $myPicture->setFontProperties(array("FontName" => "fonts/en_us.ttf""FontSize" => 6)); 
  130.  
  131. //背景顏色 
  132. //$Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50); 
  133. //$myPicture->drawGradientArea(0,0,480,300,DIRECTION_VERTICAL,$Settings); 
  134.  
  135. //畫格子和標簽 
  136. $myPicture->setGraphArea(10, 40, 440, 260); 
  137. $AxisBoundaries = array(0 => array("Min" => $bottom"Max" => $top)); 
  138. $Settings = array
  139. "Mode" => SCALE_MODE_MANUAL, 
  140. "GridR" => 200, 
  141. "GridG" => 200, 
  142. "GridB" => 200, 
  143. "XMargin" => 0, 
  144. "YMargin" => 0, 
  145. //"DrawXLines" => false, 
  146. "GridTicks" => 3, //格子密度 
  147. "ManualScale" => $AxisBoundaries
  148. ); 
  149. $myPicture->drawScale($Settings); 
  150.  
  151. //畫線 
  152. /* 
  153. $line_arr = array( 
  154. "ForceColor" => TRUE, 
  155. "ForceR" => 0, 
  156. "ForceG" => 0, 
  157. "ForceB" => 255); 
  158. $myPicture->drawLineChart($line_arr); */ 
  159. $myPicture->drawLineChart(); 
  160.  
  161. //設置Line1為無效,再畫底色 
  162. $myData->setSerieDrawable("Line1",FALSE); 
  163.  
  164. //畫區域底線 
  165. $area_arr = array
  166. "ForceTransparency"=>15, //透明度 
  167. ); 
  168. $myPicture->drawAreaChart($area_arr); 
  169.  
  170. //是否顯示文字 
  171. if ($showtxt) { 
  172. //標題 
  173. $myPicture->drawText(200,30,$stock_name,array("FontName"=>$ttf_path"FontSize"=>11,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE));  
  174.  
  175. //設置Line1為有效 
  176. $myData->setSerieDrawable("Line1",TRUE); 
  177. $myData->setSerieDescription("Line1",$desc_tip[$lang]['line'][0]); 
  178. $myData->setSerieDescription("Line2",$desc_tip[$lang]['line'][1]); 
  179.  
  180. $myPicture->setFontProperties(array("FontName" => $ttf_path,"FontSize"=>8)); 
  181. $tips = array
  182. "Style"=>LEGEND_NOBORDER, 
  183. "Mode"=>LEGEND_HORIZONTAL, 
  184. "FontR"=>0,"FontG"=>0,"FontB"=>0, 
  185. ); 
  186. $myPicture->drawLegend(20,26,$tips); 
  187.  
  188. //柱形圖 
  189. else { 
  190.  
  191. $myData->addPoints($bar"Bar"); 
  192. $myData->setPalette("Bar",array("R"=>51,"G"=>114,"B"=>178)); //設置柱子的顏色 
  193. $myData->addPoints($times"Times"); 
  194. $myData->setSerieDescription("Times","Time"); 
  195. $myData->setAbscissa("Times"); 
  196. $myData->setXAxisDisplay(AXIS_FORMAT_TIME,"H:i"); 
  197.  
  198. $myPicture = new pImage(480, 200, $myData); 
  199.  
  200. //設置默認字體 
  201. $myPicture->setFontProperties(array("FontName" => "fonts/en_us.ttf""FontSize"=>6)); 
  202. $myPicture->Antialias = FALSE; 
  203.  
  204. $myPicture->setGraphArea(50,20,450,180); 
  205.  
  206. //網格及坐標 
  207. $scaleSettings = array
  208. "Mode" => SCALE_MODE_START0, 
  209. "GridR"=>200, 
  210. "GridG"=>200, 
  211. "GridB"=>200); 
  212. $myPicture->drawScale($scaleSettings); 
  213.  
  214. /* 
  215. $Palette = array(); 
  216. for ($i = 0; $i <= $l2counts; $i++) { 
  217. $Palette[$i] = array("R"=>74,"G"=>114,"B"=>178,"Alpha"=>100); 
  218. } 
  219.  
  220. //$Palette = array("0"=>array("R"=>74,"G"=>114,"B"=>178,"Alpha"=>100)); 
  221.  
  222. /* 覆蓋畫板色 
  223. $barSetting = array( 
  224. "OverrideColors"=>$Palette, 
  225. ); 
  226. $myPicture->drawBarChart($barSetting); 
  227. */ 
  228.  
  229. $myPicture->drawBarChart(); 
  230.  
  231. //是否顯示文字 
  232. if ($showtxt) { 
  233. $tips = array
  234. "Style"=>LEGEND_NOBORDER, 
  235. "Mode"=>LEGEND_HORIZONTAL, 
  236. "FontR"=>0,"FontG"=>0,"FontB"=>0, 
  237. ); 
  238.  
  239. $myPicture->setFontProperties(array("FontName" => $ttf_path,"FontSize"=>9)); 
  240. $alls = 0; //總成交量初始化 
  241. foreach ($bar as $value) { 
  242. $alls += $value
  243. $myData->setSerieDescription("Bar"$desc_tip[$lang]['bar'].$alls); 
  244.  
  245. $myPicture->drawLegend(300,9,$tips); 
  246.  
  247.  
  248. $myPicture->stroke(); 
  249. //$myPicture->autoOutput("image.png"); 
  250.  
  251. //保存日志 
  252. //file_put_contents("log.txt", json_encode($myData) . "/n"); 
  253. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美日韩爽爽影院| 中文字幕最新精品| 国产亚洲精品一区二区| 精品无人区太爽高潮在线播放| 91av在线精品| 一区二区欧美日韩视频| 国产成人高清激情视频在线观看| 久久久亚洲精品视频| 亚洲a∨日韩av高清在线观看| 国产精品黄色影片导航在线观看| 亚洲视频777| 久久久久久久久久久网站| 欧美怡春院一区二区三区| 久久91超碰青草是什么| 中文字幕欧美精品日韩中文字幕| 8x拔播拔播x8国产精品| 日韩欧美高清在线视频| 亚洲天堂影视av| 欧美另类极品videosbest最新版本| 97在线免费视频| 亚洲性生活视频在线观看| 欧美视频国产精品| 欧美午夜精品久久久久久浪潮| 亚洲人成电影网站色xx| 国产美女91呻吟求| 日本视频久久久| 国产精品劲爆视频| 国产999精品久久久| 国产日韩中文字幕在线| 亚洲精品美女视频| 国产亚洲欧洲高清一区| 亚洲伊人久久大香线蕉av| 亚洲乱码国产乱码精品精| 欧美一二三视频| 国产一区二区精品丝袜| 日韩在线观看av| 色综合导航网站| 欧美视频裸体精品| 色偷偷88888欧美精品久久久| 亚洲精品日韩激情在线电影| 国产日韩精品在线播放| 国产91九色视频| 精品少妇v888av| 97久久久久久| 亚洲国产精品系列| 亚洲欧美成人精品| 精品日本美女福利在线观看| 美女扒开尿口让男人操亚洲视频网站| 亚洲成人xxx| 九色精品美女在线| 国产精品高清网站| 国产精品成人v| 亚洲va久久久噜噜噜| 欧美视频13p| 久久视频在线观看免费| 懂色av中文一区二区三区天美| 精品久久久国产精品999| 亚洲女成人图区| 日韩精品视频在线观看网址| 亚洲国产又黄又爽女人高潮的| 久久久久久综合网天天| 久久免费精品日本久久中文字幕| 亚洲乱码av中文一区二区| 91成人在线观看国产| 国产精品午夜一区二区欲梦| 国产精品午夜国产小视频| 疯狂做受xxxx欧美肥白少妇| 中文字幕视频在线免费欧美日韩综合在线看| 日韩av免费在线播放| 国产精品久久久久久久久久久久| 欧美韩日一区二区| 26uuu国产精品视频| 黄色91在线观看| 国产婷婷色综合av蜜臀av| 国产精品久久久久久久天堂| www国产精品视频| 久久夜色精品亚洲噜噜国产mv| 国产精品99蜜臀久久不卡二区| 久久久久久久久久亚洲| 亚洲国语精品自产拍在线观看| 日韩av电影在线免费播放| 午夜精品蜜臀一区二区三区免费| 91精品国产99久久久久久| 欧美激情亚洲精品| 日韩三级成人av网| 中文字幕在线看视频国产欧美在线看完整| 国产精品尤物福利片在线观看| wwwwwwww亚洲| 91久久在线观看| 久久久久免费精品国产| 国产日韩av在线| 国产精品久久久久久久久男| 高跟丝袜一区二区三区| 欧美一二三视频| 国产视频自拍一区| 日韩精品在线电影| 国产女人18毛片水18精品| 国模精品视频一区二区| 成人精品一区二区三区电影免费| 日韩中文字幕在线精品| 国产啪精品视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 国产精品欧美一区二区三区奶水| 欧美理论电影在线播放| 久久精品亚洲94久久精品| 亚洲国产天堂久久综合网| 性色av一区二区咪爱| 国内精品400部情侣激情| 色噜噜狠狠狠综合曰曰曰88av| 亚洲女人天堂av| 97在线精品国自产拍中文| 亚洲第一男人av| 青草热久免费精品视频| 亚洲成色777777在线观看影院| 欧美理论在线观看| 欧美成人精品在线播放| 欧美大尺度激情区在线播放| 精品美女永久免费视频| 欧美极品美女视频网站在线观看免费| 正在播放亚洲1区| 色与欲影视天天看综合网| 色综合久综合久久综合久鬼88| 亚洲精品在线看| 91精品国产91久久久久久吃药| 亚洲国产欧美在线成人app| 欧美日韩性视频| 欧美怡红院视频一区二区三区| 国产91精品久久久久久| 国产精品视频不卡| 亚洲人午夜精品免费| 成人免费看黄网站| 久久精品人人做人人爽| 亚洲免费中文字幕| 国产午夜精品视频免费不卡69堂| 国产综合久久久久久| 日本欧美黄网站| 国产成人啪精品视频免费网| 在线观看欧美www| 裸体女人亚洲精品一区| 亚洲国产高潮在线观看| 性亚洲最疯狂xxxx高清| 精品国产自在精品国产浪潮| 午夜精品久久久久久99热软件| 久久久久久国产三级电影| 国产91在线高潮白浆在线观看| 精品美女永久免费视频| 久久在线观看视频| 亚洲综合自拍一区| 成人福利网站在线观看| 亚洲性视频网址| 一本色道久久综合狠狠躁篇怎么玩| 国产精品久久久久久久7电影| 日韩av中文在线| 992tv成人免费视频| 91地址最新发布| 国产精品永久在线| 日韩电影中文 亚洲精品乱码| 国产精选久久久久久| 国产精品aaa| 国产免费成人av| 中文字幕不卡在线视频极品| 97成人精品区在线播放| 日韩欧美在线观看视频| 欧美成人午夜激情视频|