php做股票行情,php股票K线图生成代码

header("content-type: image/gif");

$data = array ("-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24","-1174.58","-1865.41","1961.24");

$colors = array (array (255,0,0 ),array (0,255,0 ) );

$path = "gg15_600050.gif";

$title = "中国联通(600050)30日资金进出";

$date = array ("2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00","2010-05-20 00:00:00");

$hai = array(7203,6037,1931,9605,7405,8855,228,7771,8671,8791,1290,426,3265,4298,4809,3350,8204,8682,5523,7569,5853,593,3124,9062,3329,3236,2252,8756,2796,5164,2599,2630,1470,9779,8805,1512,1517,5635,760,1380,152,6035,2905,3163,9443,9432,5031,2838,6802,9330,1878,1333,4297,4180,3037,4527,9043,7287,3248,3448,3405,7204,2203,3974,4399,7333,4541,7033,4292,6128,9955,8603,297,6992,3282,9612,4483,8379,4016,6038,4163,3789,6896,8710,1502,1579,1712,3705,3619,5150,3007,1853,2776,3056,569,9031,6092,8600,8941,6366,5829,433,8011,9637,9106,1761,2422,9873,8186,1136,1763,3050,285,1962,775,9900,7371,2691,9051,6596,6858,6726,1527,3970,910,2621,7598,7899,6546,3678,2202,9411,6129,8352,4830,4484,6776,243,323,3946,751,7508,8173,3776,5071,3847,3318,4901,2102,7516,5251,3299,8859,2114,8711,9800,7707,5898,3489,580,5763,2470,4126,6269,5191,182,412,3043,3208,2438,6889,1732,1979,7692,3445,8214,8620,9446,4624,3615,5496,6152,213,3715,9623,1215,4757,9443,3366,2988,8043,6874,3742,4974,4812,6839,3016,5625,4656,5315,8303,8346,2315,3230,1969,1688,7381,6463,1030,8856,4691,6042,7652,8502,3839,7844,9149,4029,9465,2897,7688,3791,1458,6981,484,1290,4261,1222,9503,4881,7663,1399,2260,8066,6405,8442,722,9297,177,8426,2103,2078,3521,2280,8570,4663,6227,5784,7438,654,3036,9965,872,8306,3537,899,5888,1319,2472,9218,4853,7849,9433,1196,4880,1597,9258,7465,8138,817,1637,4201,1939,8914,1114,2232,8251,4538,7378,7438,4489,993,5269,944,2718,6633,4378,8431,155,5061,9347,1125,8865,4629,9965,4706,6263,8742,971,301);

draw(600,300,$data,$colors,$path,$title,$date);

function draw($w,$h,$data,$colors,$path,$title,$date)

//创建新空白图形

//箭头50像素,内容400*300

$width = $w;

$height = $h;

//取得左下角的坐标点,左边50像素和最下边50像素用于写标尺

$l_b_x = 50;

$l_b_y = $height / 2;

$chartfont = 2; //图表字体

$font = 'c:/windows/fonts/simsun.ttc'; //支持汉字的字体

$chartfontheight = imagefontheight($chartfont); //图表字体的大小

//取得最大的数据

$max = abs(max($data));

$max = $max > abs(min($data)) ? $max : abs(min($data));

$image = imagecreate($width, $height);

//填充背景为白色

$color_white = imagecolorallocate($image, 0xff, 0xff, 0xff); //白色

$color_diwen = imagecolorallocate($image, 0xd8, 0xd8, 0xd8); //暗灰色

imagefill($image, 0, 0, $color_white);

//写入logo

//imagettftext($image,20,0,$l_b_x+20,45,$color_diwen,$font,'华南财经网');

//画坐标

//坐标颜色为黑色,先画坐标,再画箭头

$black_color = imagecolorallocate($image, 0x00, 0x00, 0x00);

imageline($image, $l_b_x, $l_b_y, $l_b_x, 10, $black_color);

imageline($image, $l_b_x, $l_b_y, $width - 10, $l_b_y, $black_color);

//箭头

imageline($image, $l_b_x, 10, $l_b_x - 3, 14, $black_color);

imageline($image, $l_b_x, 10, $l_b_x + 3, 14, $black_color);

imageline($image, $width - 10, $l_b_y, $width - 13, $l_b_y - 3, $black_color);

imageline($image, $width - 10, $l_b_y, $width - 13, $l_b_y + 3, $black_color);

//画底纹,灰色;画20条底纹;虚线

$pit = floor(($l_b_y - 50) / 10); //每一段的高度

$pit_x = floor(($width - $l_b_x - 30) / count($data)); //每一段的宽度

//计算单位

$x_max = $max;

$flag_danwei = 0;

while ($x_max > 1000) {

$x_max/= 100;

$flag_danwei++;

}

switch ($flag_danwei) {

// case 0:$danwei = '(元)';break;

case 0:

$danwei = '(万)';

break;

case 1:

$danwei = '(百万)';

break;

case 2:

$danwei = '(亿)';

break;

case 3:

$danwei = '(百亿)';

break;

}

for ($i = 1; $i < 11; $i++) {

imageline($image, $l_b_x + 1, $l_b_y - $i * $pit, $width - 15, $l_b_y - $i * $pit, $color_diwen);

//从坐标的值

$v_v = number_format(($max / (10 * pow(100, $flag_danwei)) * $i) , 2);

$v_v = substr($v_v, 0, 5);

imagestring($image, $chartfont, $l_b_x - 40, $l_b_y - $i * $pit - 10, $v_v, $black_color);

}

//原点坐标

imagestring($image, $chartfont, $l_b_x - 20, $l_b_y - 10, 0, $black_color);

//写入汉字,单位 和标题

imagettftext($image, 10, 0, $l_b_x - 45, 20, $black_color, $font, $danwei);

//imagettftext($image, 11,0,$width/2-70,$l_b_y+20,$black_color, $font,$title);

//画柱体,长方形,并着色

$color_big = imagecolorallocate($image, $colors[0][0], $colors[0][1], $colors[0][2]);

$color_small = imagecolorallocate($image, $colors[1][0], $colors[1][1], $colors[1][2]);

for ($j = 0; $j < count($data); $j++) {

$d_h = floor(abs($data[$j] / $max * 10 * $pit)); //柱体高度

$current_date = substr($date[$j], 5, 5);

// $current_date .= substr($date[$j],8,2);

imagerectangle($image, $l_b_x + $j * $pit_x + 1, $l_b_y, $l_b_x + ($j + 1) * $pit_x - 2, $l_b_y - $d_h, $black_color);

//为矩形着色

$current_color = $data[$j] > 0 ? $color_big : $color_small;

imagefilltoborder($image, $l_b_x + $j * $pit_x + 1 + floor($pit_x / 2) , $l_b_y - floor($d_h / 2) , $black_color, $current_color);

//写入日期

/*imagestring($image,

$chartfont,

$l_b_x+$j*$pit_x,

$l_b_y+2,

$current_date,

$black_color);*/

imagettftext($image, 8, 90, $l_b_x + $j * $pit_x + 10, $l_b_y - $d_h, $black_color, $font, $current_date);

}

if ($path != "") imagegif($image, $path);

else imagegif($image);

imagedestroy($image);

} //画图函数结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值