Kare,

This is not the most elegant solution, but here's the code I use to
"filter" my data before plotting. It's actually written to exclude
non-finite values, but could be modified to exclude non-positive
values instead. You might also want to modify/remove the "else" clause
that returns fake data when nothing meets the criteria. 

I actually use it with PGPLOT, but you could just as easily use it
with PLPLOT like this

plline( graphclean( $x, $y ) );

sub graphclean{
  my $mask = ones($_[0]); # start by including all points
  foreach my $piddle (@_) { # can be used with N-dimensional data (1,2,3...)
    croak "Dims don't match" unless $mask->dim(0) == $piddle->dim(0);

    $mask = $mask * $piddle->isfinite(); # only keep points where
                                         # every coordinate is finite

    # make it work with 2-D piddles
    $mask = andover($mask->transpose()) if $mask->dim(1) > 0; 
  }
  if (any $mask) {
    return map {$_->(which($mask))} @_;
  }else {
    carp "graphclean found no good data, making something up.";
    return map {pdl [1,1]} @_;
  }
}

Hope that's useful.

-roban


On 10:48, Thu 03 May 07, Kåre Edvardsen wrote:
> Finally I've decided to use PLplot for plotting since it handles
> graphics (PS and jpeg) better than PGplot. I find it not very
> userfrendly, I'm afraid to say, but I guess I'll get used to it...
> 
> Only one question for now:
> 
> How do I specify missing values when plotting?
> 
> Here, I don't want to plot zero or negative elemets of $y
> 
> plsdev ("jpeg");
> plsfnam("test.jpeg");
> plinit ();
> pladv (0);
> plvpor (0.15,0.9,0.15,0.9);
> plwind (0.0,365.0,0.0,15.0);
> plbox (0,0,0,0,"bcnst","bcnst");
> plline ($x, $y);
> plend ();
> 
> All the best,
> Kare
> 
> ###########################################
> Kare Edvardsen <[EMAIL PROTECTED]>
> Norwegian Institute for Air Research (NILU)
> Polarmiljosenteret
> NO-9296 Tromso       http://www.nilu.no
> Swb. +47 77 75 03 75 Dir. +47 77 75 03 90
> Fax. +47 77 75 03 76 Mob. +47 90 74 60 69
> ###########################################
> 
> 
> 

> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl


_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to