作者frank1983 (What?)
看板Perl
标题Re: [问题] 关於画图,GD画图
时间Tue Nov 23 22:48:15 2010
你说 @data 的内容如下:
@data = ([1,2,3,4,5,6,7],#这是X
[10,9,8,7,6,8],#之後都是Y
[201,190,180,170,160,155,176],
[...]#依此类推。
);
可以你在程式内 @data 的 assignment 却是:
@data = ([@num],
[@file]
);
这样 @data 将永远只包含两个元素,而不是你原本所希望的内容
也许你可以将程式改为:
my @file = map { chomp; [ split(/\t/) ] } <FH>;
...
@data = ([@num],
@file
);
也许这样才是你所希望的内容...
※ 引述《sqrt1089 (李崩子)》之铭言:
: =====以下是程式码=====
: #!/usr/local/bin/perl -w
: use CGI ':standard';
: use GD::Graph::lines;
: open (FH,"02.txt")||die"File open Error!\n";
: my @file = map { chomp; split(/\t/) } <FH>;
: @num=(1..$#file+1);#定义X轴的值
: @data = ([@num],
: [@file]
: );
: my $mygraph = GD::Graph::lines->new(900, 300);
: $mygraph->set(
: x_label => 'X',
: y_label => 'Y',
: title =>'Test',
: # Set the thickness of line
: line_width => 1,
: ) ;#or warn $mygraph->error;
: my $myimage = $mygraph->plot(\@data) or die $mygraph->error;
: binmode STDOUT;
: print $myimage->png;
: ===================
: 以下是我执行後。
: C:\>perl GD99.pl >test.png
: 然後test.png 长这样 http://ppt.cc/ZIi,
: 然後我的记事本的内容是这样
: 10 9 8 7 6 8
: 201 190 180 170 160 155 176
: 就是2行数。
: 我最後是希望能有2条曲线,可是我再怎麽弄都是一条,而且是全部的值拿去画
: 如果是要写死是这样
: @data = ([1,2,3,4,5,6,7],#这是X
: [10,9,8,7,6,8],#之後都是Y
: [201,190,180,170,160,155,176],
: [...]#依此类推。
: );
: ..
: .
: 在这先说声谢谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.251.162.40
1F:推 sqrt1089:赞!推推推!! 原来split还要用[ ]框起来 11/24 13:14