設定方法を教えてください、データ構造へのパイチャートGD::Graph?

StackOverflow https://stackoverflow.com/questions/1393536

  •  21-09-2019
  •  | 
  •  

質問

私writting Perlスクリプトを円グラフの使用 GD::Graph::パイ これらの配列:

@Array1 = ("A", "B", "C", "D");
$array2 = [
      ['upto 100 values'],
      ['upto 100 values'],
      ['upto 100 values'],
      ['upto 100 values']
    ];

って、私の理解を得ること、うれしい配列を生成し、参照の配列のように:

 my @graph_data = (\@Array1, @$array2);

また利用しようとした foreach ループも少なくなってきている好評を得ております。をしたいと思っていパイグラフの最初の値 @Array1 に対し初の値 $array2 二値 @Array1 に対し二価値 $array2 います。また、同タイトルは各グラフとしての価値 @Array1.

eg.
my @graph_data1 = (\@Array1[0], @$array2[0]);

誰でもできるのでください提案のようだ。

役に立ちましたか?

解決 4

私は、コードの下に使用して、この問題の解決策を見つけた。

my @pairs = map{"$Array1[$_]@$array2[$_],"} 0..$#Array1;

この後、アレイ@pairsの値はグラフを作成するために使用することができます。

他のヒント

そのような円グラフとかに入る前に、私は、あなた自身が基本的なPerlのデータ構造や参照に更新されます示唆しています。お読みください perlreftut に、youlはその後、この問題を自分で解決することができるはずです。

なんなのかんかようとしているのだが、この例を3つのパイチャートのセットを用いたカバーしています。私の第二のManniのアドバイス:時間と perlreftutperldsc.また、ダウンロード GD::Graph モジュールで、多くの事例を含むパイチャートの samples サブディレクトリ).

use strict;
use warnings;
use GD::Graph::pie;

my @categories = qw(foo bar fubb buzz);
my @data = ( 
    [   25,    32,    10,     44 ],  # Data values for chart #1
    [  123,   221,   110,    142 ],  # Data values for chart #2
    [  225,   252,   217,    264 ],  # etc.
);

for my $i (0 .. $#data){
    my $chart = GD::Graph::pie->new;
    my @pie_data = ( \@categories, $data[$i] );
    $chart->plot(\@pie_data);

    open(my $fh, '>', "pie_chart_$i.gif") or die $!;
    binmode $fh;
    print $fh $chart->gd->gif;
    close $fh;
}

他の回答が少なく、直接言う地味英語での状態に:

my @graph_data = (\Array1, $@array2);
my @graph_data1 = (\Array1[0], $@array2[0]);

は怒っに見えます。あなたはほぼ確実平均ます:

my @graph_data = (\@Array1, $array2);
# you want the first element of each list in the same datastructure?
my @graph_data1 = ([$Array1[0]], [$array2->[0]]); # (['A'], [[..numbers..]])
                                                  # Note *two* [ and ] in 2nd bit
# ... or you want a different datastructure?
my @graph_data1 = ($Array1[0], $array2->[0]); # ('A', [..numbers..]) 

@配列1、配列である、あなたはそれへの参照をしたい、それがARRAY1 @ \になります。

$配列2は、既に配列への参照です。これは、配列への参照が含まれている、と私はあなたがこのようにインデックス0の配列への参照を含むリストをしたいと仮定します。$配列2 - > [0]配列参照を介して第1のインデックス化要素であり、そしてそれは、既に配列参照です<。 / P>

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top