2014-09-13 4 views
-2

first graph 그래프 1 graph2 나는 perl에 매우 익숙하다. 그래프를 그리는 것은 내가 배운다. 여기에 코드가 있습니다.펄에서 그래프 그리기

@user_list = (sort { $user_list{$a} <=> $user_list{$b} } keys %user_list); 
@data = \@user_list; 

# Goes through the weeks and add each week info to the data array 
my $size = scalar @weeks; 
    if ($size > 4) 
{ 
    $start = $size - 4; 
    print $start; 
} 
for my $i ($start..($size - 1)) 
{ 
    my @week = @{$weeks[$size - $i - 1]}; 
    foreach my $x (@week) { $x = ceil($x/7); } 
    @data = (@data, \@week); 
    } 

$graph = GD::Graph::bars->new(1200,600); 

$graph->set( 
    x_label => 'Weeks', 
    y_label => 'Average Total Open Cases Per User', 
    title => 'Alpha Cases Weekly Trend Per User', 
    transparent => 0, 
    bargroup_spacing => 3, 
    show_values => 1 
); 
    $graph->set_legend(@week_start_dates); 
$gd = $graph->plot(\@data); 
open(IMG, '> /var/www/cgi-bin/remedy-case-management/graphs/Alpha_Cases.png') or die $!; 
binmode IMG; 
print IMG $gd->gif; 
close IMG; 

나는 week_start_dates = 7 월 26-2014 월 - 02-2014 월 - 09-2014 월 - 16-2014 월 - 23 @ x-axis.ie 먼저 사주를 나타내는 그래프 문제를 해결하고 -2014 8 월 30-2014 9 월 06-2014 9 월 13 일 13시 14 분

그래프를 인쇄 할 때 그림의 첫 번째 그래프와 같이 7 월 26 일부터 8 월 16 일까지의 첫 4 주를 표시하지만, 8 월 23 일 -9 월 13 일 인쇄

그래서 내가 두 번째 그래프로 보여줍니다 @week_start_dates 반대하지 않는 경우 : 9 월 13-2014 9 월 6-2014 월 - 30-2014 팔월 23-2014

어디서 모른다 코드에서 정확히 4 주만 표시되도록 트리밍됩니다. 이것을 x 축으로 인쇄하고 싶습니다. Aug-23-104 Aug-30-2014 Sep-6-2014 Sep-13-2014

지난 4 주간 날짜를 표시하려면 @ week_start_dates = substr 함수를 사용해야합니까? 어쩌면 어딘가에서 4 주만 자릅니다. 코드와 나는 그것을 발견 할 수 없습니다. 도움을 많이 주시면 감사하겠습니다. 귀하의 코멘트에서 질문에 대한

+0

jm666-I는 전체 코드를 붙여하지 않았지만,이 코드 부분이 graphs.Just 데이터 부분 음모를 꾸미고있다. – javalearner

+0

전에 잘못된 코드를 붙여 넣은 것을 유감스럽게 생각합니다. 지금 정확한 코드를 추가했습니다. – javalearner

+0

이것이 의미가 있습니까? – javalearner

답변

1

:

나는 그것을 플롯 때 나는 순서로 인쇄해야

@week_start_dates = Jul-28-2014 Aug-04-2014 Aug-11-2014 Aug-18-2014 Aug-25-2014 Sep-01-2014 Sep-08-2014 Sep-15-2014 . 

배열을 가지고있다.

Aug-25-2014 Sep-01-2014 Sep-08-2014 Sep-15-2014. 
그래서

그것을 실제로 인쇄 단지 4 주 (처음 4 주) .I 마지막 주 (15)

배열에 대해 알아 SEP 25 08 3부터 인쇄 할 조각, 여기 perldata. 배열의 일부분을 가져 오는 데모.

use feature 'say'; 
use strict; 
use warnings; 

my(@wsd) = qw(Jul-28-2014 Aug-04-2014 Aug-11-2014 Aug-18-2014 Aug-25-2014 Sep-01-2014 Sep-08-2014 Sep-15-2014); 

say "@wsd"; #the whole array 
#Jul-28-2014 Aug-04-2014 Aug-11-2014 Aug-18-2014 Aug-25-2014 Sep-01-2014 Sep-08-2014 Sep-15-2014 

say "@wsd[2..5]"; # from 2 up to 5 (indexed from 0) 
#Aug-11-2014 Aug-18-2014 Aug-25-2014 Sep-01-2014 

say "@wsd[0,-1]"; #0 and last 
#Jul-28-2014 Sep-15-2014 

say "@wsd[-4..-1]"; #last 4 
#Aug-25-2014 Sep-01-2014 Sep-08-2014 Sep-15-2014 

등등 ...

+0

고맙습니다. jm666. 양해 해 주셔서 감사합니다. – javalearner

+0

@javalearner 좋아요, 위의 불필요한 코멘트를 삭제 해 주셔서 감사합니다. – jm666

+0

그것은 마치 매력처럼 작동했습니다. 고맙습니다 !!!!!!!! – javalearner