in reply to Plot Graph in Console by printing special character say * and spaces using matrix structure in Perl

Maybe this will help get you started...

#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11146802 use warnings; use List::Util qw( max ); $| = 1; my @values = (7,9,2,0,1,2,4,3,9); my ($rows, $columns) = split ' ', qx(stty size); # FIXME works on Linu +x $rows -= 2 ; # FIXME fudge my @grid = map { ' ' x $columns } 1 .. $rows; my $max = max @values; my $scale = int $rows / $max; my $wide = int $columns / @values; my $horizontal = 0; for my $value ( @values ) { for my $vert ( $rows - 1 - $value * $scale .. $rows - 1 ) { substr $grid[ $vert ], $horizontal, $wide - 1, '*' x ($wide - 1); } $horizontal += $wide; } print @grid;
  • Comment on Re: Plot Graph in Console by printing special character say * and spaces using matrix structure in Perl
  • Download Code

Replies are listed 'Best First'.
Re^2: Plot Graph in Console by printing special character say * and spaces using matrix structure in Perl
by programmingzeal (Beadle) on Sep 10, 2022 at 07:27 UTC
    I found the alternative of `stty size` on Linux for windows console size. Just a simple perldoc -q "screen size" revealed following:

    How do I get the screen size? If you have Term::ReadKey module installed from CPAN, you can use it to fetch the width and height in characters and in pixels:

    use Term::ReadKey; my ($wchar, $hchar, $wpixels, $hpixels) = GetTerminalSize();

    The code is working though I will modify it. Thanks for giving me a start!!

      $hchar is clearly reported 1 less than it should be, on Windows. Ah yes, see line 506

Re^2: Plot Graph in Console by printing special character say * and spaces using matrix structure in Perl
by programmingzeal (Beadle) on Sep 10, 2022 at 04:43 UTC
    Thanks for the quick response to my query. Will this code execute on windows as well? Do I have to modify it for running on windows?

      Have you tried it? Did it work for you? If it didn't work what did you do?

      We can help, but we pretty quickly get sick of holding your hand every step of the way when you show no effort!

      Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond
        Apologies. I didn't mean that. I after my question instantly tried it and found it is using Linux OS command `stty`. I am googling and and have found this link for getting console size on windows.

        https://github.com/symfony/symfony/commit/417130506798627a70d5a82df51a91326d2738e0

        Currently I am checking it and I will find the alternative of `stty` on windows. Many thanks.