Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl 如何防止GD::Graph写入最后一个X标签并覆盖其他标签?_Perl_Gd_Gd Graph - Fatal编程技术网

Perl 如何防止GD::Graph写入最后一个X标签并覆盖其他标签?

Perl 如何防止GD::Graph写入最后一个X标签并覆盖其他标签?,perl,gd,gd-graph,Perl,Gd,Gd Graph,我设置为跳过标签,但它仍然尝试显示最后一个标签,并且覆盖了另一个标签,看起来很凌乱。它不应该写最后一个标签。它应该跳过最后一个标签。我将要跳过的标签数量设置为数据点数量的函数 这就是它看起来的样子: 代码: 好的,我找到了。只需使用模将条目的#除以要跳过的标签的#,并将其用作偏移量。似乎GD::Graph总是希望打印最后一个标签,因此无法控制它,但您可以控制要打印的第一个标签。对我来说似乎是倒退,但不管怎样 my $graph = GD::Graph::lines->new(400, 5

我设置为跳过标签,但它仍然尝试显示最后一个标签,并且覆盖了另一个标签,看起来很凌乱。它不应该写最后一个标签。它应该跳过最后一个标签。我将要跳过的标签数量设置为数据点数量的函数

这就是它看起来的样子:

代码:


好的,我找到了。只需使用模将条目的#除以要跳过的标签的#,并将其用作偏移量。似乎GD::Graph总是希望打印最后一个标签,因此无法控制它,但您可以控制要打印的第一个标签。对我来说似乎是倒退,但不管怎样

my $graph = GD::Graph::lines->new(400, 500);
my $skip = int ((@tmpDate * 8)/(400-50) + 1); # a function of # of data points, each label 8px. More labels, more skip. 
$graph->set( 
  r_margin          => 2,
  x_label           => 'Date',
  y_label           => 'Price',
  title             => "$symbol1, $symbol2",
  dclrs             => [ qw(lred lblue lgreen lyellow lpurple cyan lorange) ],
  transparent       => 0,
  x_labels_vertical => 1,
  x_label_skip      => $skip,
  x_tick_offset     => @tmpDate % $skip, # ensure last label doesn't overwrite second-to-last label
) or die $graph->error;
完全按照您的需要工作,只需跳过最后一个标签。可能它没有在2012年实施,但现在已经实施了

my $graph = GD::Graph::lines->new(400, 500);
my $skip = int ((@tmpDate * 8)/(400-50) + 1); # a function of # of data points, each label 8px. More labels, more skip. 
$graph->set( 
  r_margin          => 2,
  x_label           => 'Date',
  y_label           => 'Price',
  title             => "$symbol1, $symbol2",
  dclrs             => [ qw(lred lblue lgreen lyellow lpurple cyan lorange) ],
  transparent       => 0,
  x_labels_vertical => 1,
  x_label_skip      => $skip,
  x_tick_offset     => @tmpDate % $skip, # ensure last label doesn't overwrite second-to-last label
) or die $graph->error;