{"id":14966059,"url":"https://github.com/titsuki/raku-chart-gnuplot","last_synced_at":"2025-11-08T01:03:42.066Z","repository":{"id":52294182,"uuid":"84228278","full_name":"titsuki/raku-Chart-Gnuplot","owner":"titsuki","description":"A Raku naive Gnuplot bindings","archived":false,"fork":false,"pushed_at":"2023-03-21T11:18:01.000Z","size":346,"stargazers_count":11,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T07:21:27.083Z","etag":null,"topics":["gnuplot","perl6","raku","rakulang"],"latest_commit_sha":null,"homepage":"","language":"Raku","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/titsuki.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-07T17:38:22.000Z","updated_at":"2023-03-20T04:06:16.000Z","dependencies_parsed_at":"2024-09-14T01:22:24.706Z","dependency_job_id":"34771619-83a3-4a84-9f4f-a5578492a5c2","html_url":"https://github.com/titsuki/raku-Chart-Gnuplot","commit_stats":{"total_commits":208,"total_committers":2,"mean_commits":104.0,"dds":0.004807692307692291,"last_synced_commit":"490a4b7a15975742a0438d66de3753879836b2d8"},"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titsuki%2Fraku-Chart-Gnuplot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titsuki%2Fraku-Chart-Gnuplot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titsuki%2Fraku-Chart-Gnuplot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/titsuki%2Fraku-Chart-Gnuplot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/titsuki","download_url":"https://codeload.github.com/titsuki/raku-Chart-Gnuplot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238147587,"owners_count":19424289,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gnuplot","perl6","raku","rakulang"],"created_at":"2024-09-24T13:35:46.201Z","updated_at":"2025-10-25T13:31:09.495Z","avatar_url":"https://github.com/titsuki.png","language":"Raku","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Actions Status](https://github.com/titsuki/raku-Chart-Gnuplot/workflows/test/badge.svg)](https://github.com/titsuki/raku-Chart-Gnuplot/actions)\n\nNAME\n====\n\nChart::Gnuplot - A Raku bindings for gnuplot\n\nSYNOPSIS\n========\n\n### SOURCE\n\n    use Chart::Gnuplot;\n    use Chart::Gnuplot::Subset;\n    my $gnu = Chart::Gnuplot.new(:terminal(\"png\"), :filename(\"histogram.png\"));\n\n    my @data = (q:to/EOF/).split(\"\\n\", :skip-empty)\u003e\u003e.split(\" \", :skip-empty);\n    Year Male Female\n    1950 100 90\n    1960 100 90\n    1970 80 70\n    1980 130 140\n    1990 140 120\n    2000 200 210\n    2010 240 230\n    2020 400 420\n    EOF\n\n    my ($header, *@body) = @data;\n\n    $gnu.command(\"set style histogram clustered\");\n    $gnu.legend(:left);\n    my AnyTicsTic @tics = (@body\u003e\u003e.[0]).pairs.map(-\u003e (:key($pos), :value($year)) { %(:label($year), :pos($pos)) });\n    $gnu.xtics(:tics(@tics));\n    $gnu.xlabel(:label($header[0]));\n    $gnu.plot(:vertices(@body), :using([2]), :style(\"histogram\"), :title($header[1]), :fill(\"solid 1.0\"));\n    $gnu.plot(:vertices(@body), :using([3]), :style(\"histogram\"), :title($header[2]), :fill(\"solid 1.0\"));\n\n    $gnu.dispose;\n\n### OUTPUT\n\n\u003cimg src=\"histogram.png\" alt=\"histogram\"\u003e\n\nDESCRIPTION\n===========\n\nChart::Gnuplot is a Raku naive bindings for gnuplot. Chart::Gnuplot runs `gnuplot` using `Proc::Async` and enables you to plot chart or graph with Rakuish interface.\n\nSUBSET\n------\n\nDefined as:\n\n    subset FalseOnly of Bool is export where { $_ ~~ Bool:U or $_ === False };\n    subset TrueOnly of Bool is export where { $_ ~~ Bool:U or $_ === True};\n    subset LabelRotate of Cool is export where { $_ ~~ Cool:U or $_ ~~ Real or $_ === False };\n    subset AnyLabelRotate of Cool is export where { $_ ~~ Cool:U or $_ eq \"parallel\" or $_ ~~ Real or $_ === False };\n    subset LegendMax of Cool is export where { $_ ~~ Cool:U or $_ eq \"auto\" or $_ ~~ Real };\n    subset AnyTicsRotate of Cool is export where { $_ ~~ Cool:U or $_ ~~ Real or $_ === False };\n    subset AnyTicsOffset of Mu is export where { $_ ~~ Mu:U or $_ ~~ FalseOnly or ($_ ~~ List and $_.all ~~ Pair|Real) };\n    subset AnyTicsTic of Mu is export where { $_ ~~ Mu:U or $_ ~~ Hash and .\u003clabel\u003e:exists and .\u003cpos\u003e:exists and .keys.grep(* eq \"label\"|\"pos\"|\"level\").elems == .keys.elems };\n\nMETHODS\n-------\n\n### terminal\n\nDefined as:\n\n    method terminal($terminal)\n\nTells gnuplot what kind of output to generate.\n\n### plot\n\nDefined as:\n\n    multi method plot(\n            :$title, :$ignore, :@range, :@vertices!, :$smooth,\n            :@using,\n            Str :$style, :ls(:$linestyle), :lt(:$linetype), :lw(:$linewidth), :lc(:$linecolor),\n            :pt(:$pointtype), :ps(:$pointsize), :$fill, FalseOnly :$hidden3d, FalseOnly :$contours,\n            FalseOnly :$surface, :$palette,\n            :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method plot(\n          :$title, :$ignore, :@range, :$function!, :$smooth,\n          Str :$style, :ls(:$linestyle), :lt(:$linetype), :lw(:$linewidth), :lc(:$linecolor),\n          :pt(:$pointtype), :ps(:$pointsize), :$fill, FalseOnly :$hidden3d, FalseOnly :$contours,\n          FalseOnly :$surface, :$palette,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nDraws a 2-dimensional plot.\n\n### splot\n\nDefined as:\n\n    multi method splot(\n          :@range,\n          :@vertices!, :$smooth,\n          :$binary, :$matrix, :$index, :$every,\n          :$title, :$style, :ls(:$linestyle), :lt(:$linetype), :lw(:$linewidth), :lc(:$linecolor),\n          :$pointtype, :$pointsize, :$fill, FalseOnly :$hidden3d, FalseOnly :$contours,\n          FalseOnly :$surface, :$palette, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method splot(\n          :@range,\n          :$function!, :$smooth,\n          :$title, :$style, :ls(:$linestyle), :lt(:$linetype), :lw(:$linewidth), :lc(:$linecolor),\n          :$pointtype, :$pointsize, :$fill, FalseOnly :$hidden3d, FalseOnly :$contours,\n          FalseOnly :$surface, :$palette, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nDraws a 3-dimensional plot.\n\n### label\n\nDefined as:\n\n    method label(\n           :$tag, Str :$label-text, :$at, TrueOnly :$left, TrueOnly :$center, TrueOnly :$right,\n           LabelRotate :$rotate, :$font-name, :$font-size, FalseOnly :$enhanced,\n           TrueOnly :$front, TrueOnly :$back, :$textcolor, FalseOnly :$point, :$line-type, :$point-type, :$point-size, :$offset,\n           TrueOnly :$boxed, TrueOnly :$hypertext, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nPlaces the text string at the corresponding 2D or 3D position.\n\n### xlabel\n\nDefined as:\n\n    method xlabel(\n           Str :$label, :$offset, :$font-name, :$font-size, :$textcolor,\n           Bool :$enhanced, AnyLabelRotate :$rotate, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nSets the x-axis label.\n\n### ylabel\n\nDefined as:\n\n    method ylabel(\n           Str :$label, :$offset, :$font-name, :$font-size, :$textcolor,\n           Bool :$enhanced, AnyLabelRotate :$rotate, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nSets the y-axis label.\n\n### zlabel\n\nDefined as:\n\n    method zlabel(\n           Str :$label, :$offset, :$font-name, :$font-size, :$textcolor,\n           Bool :$enhanced, AnyLabelRotate :$rotate, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nSets the z-axis label.\n\n### x2label\n\nDefined as:\n\n    method x2label(\n           Str :$label, :$offset, :$font-name, :$font-size, :$textcolor,\n           Bool :$enhanced, AnyLabelRotate :$rotate, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nSets the x2-axis label.\n\n### y2label\n\nDefined as:\n\n    method y2label(\n           Str :$label, :$offset, :$font-name, :$font-size, :$textcolor,\n           Bool :$enhanced, AnyLabelRotate :$rotate, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nSets the y2-axis label.\n\n### cblabel\n\nDefined as:\n\n    method cblabel(\n           Str :$label, :$offset, :$font-name, :$font-size, :$textcolor,\n           Bool :$enhanced, AnyLabelRotate :$rotate, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nSets the cb-axis label.\n\n### xrange\n\nDefined as:\n\n    multi method xrange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method xrange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the horizontal range that will be displayed.\n\n### yrange\n\nDefined as:\n\n    multi method yrange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method yrange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the vertical range that will be displayed.\n\n### zrange\n\nDefined as:\n\n    multi method zrange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method zrange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the range that will be displayed on the z axis.\n\n### x2range\n\nDefined as:\n\n    multi method x2range(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method x2range(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the range that will be displayed on the x2 axis.\n\n### y2range\n\nDefined as:\n\n    multi method y2range(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method y2range(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the range that will be displayed on the y2 axis.\n\n### cbrange\n\nDefined as:\n\n    multi method cbrange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method cbrange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the range of values which are colored.\n\n### rrange\n\nDefined as:\n\n    multi method rrange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method rrange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the range that will be displayed on the r axis.\n\n### trange\n\nDefined as:\n\n    multi method trange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method trange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSets the parametric range used to compute x and y values when in parametric or polar modes.\n\n### urange\n\nDefined as:\n\n    multi method urange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method urange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSet the parametric ranges used to compute x, y, and z values when in splot parametric mode.\n\n### vrange\n\nDefined as:\n\n    multi method vrange(\n          :$min, :$max, Bool :$reverse, Bool :$writeback, Bool :$extend,\n          :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method vrange(TrueOnly :$restore, :\u0026writer? = -\u003e $msg { self.command: $msg })\n\nSet the parametric ranges used to compute x, y, and z values when in splot parametric mode.\n\n### xtics\n\nDefined as:\n\n    method xtics(\n           TrueOnly :$axis, TrueOnly :$border, Bool :$mirror,\n           TrueOnly :$in, TrueOnly :$out, TrueOnly :$scale-default, :$scale-major, :$scale-minor, AnyTicsRotate :$rotate, AnyTicsOffset :$offset,\n           TrueOnly :$left, TrueOnly :$right, TrueOnly :$center, TrueOnly :$autojustify,\n           TrueOnly :$add,\n           TrueOnly :$autofreq,\n           :$incr,\n           :$start, :$end,\n           :@tics where Array[AnyTicsTic] | Array[],\n           :$format, :$font-name, :$font-size, Bool :$enhanced,\n           TrueOnly :$numeric, TrueOnly :$timedate, TrueOnly :$geographic,\n           TrueOnly :$rangelimited,\n           :$textcolor, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nControls the major (labeled) tics on the x axis.\n\n### ytics\n\nDefined as:\n\n    method ytics(\n           TrueOnly :$axis, TrueOnly :$border, Bool :$mirror,\n           TrueOnly :$in, TrueOnly :$out, TrueOnly :$scale-default, :$scale-major, :$scale-minor, AnyTicsRotate :$rotate, AnyTicsOffset :$offset,\n           TrueOnly :$left, TrueOnly :$right, TrueOnly :$center, TrueOnly :$autojustify,\n           TrueOnly :$add,\n           TrueOnly :$autofreq,\n           :$incr,\n           :$start, :$end,\n           :@tics where Array[AnyTicsTic] | Array[],\n           :$format, :$font-name, :$font-size, Bool :$enhanced,\n           TrueOnly :$numeric, TrueOnly :$timedate, TrueOnly :$geographic,\n           TrueOnly :$rangelimited,\n           :$textcolor, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nControls the major (labeled) tics on the y axis.\n\n### ztics\n\nDefined as:\n\n    method ztics(\n           TrueOnly :$axis, TrueOnly :$border, Bool :$mirror,\n           TrueOnly :$in, TrueOnly :$out, TrueOnly :$scale-default, :$scale-major, :$scale-minor, AnyTicsRotate :$rotate, AnyTicsOffset :$offset,\n           TrueOnly :$left, TrueOnly :$right, TrueOnly :$center, TrueOnly :$autojustify,\n           TrueOnly :$add,\n           TrueOnly :$autofreq,\n           :$incr,\n           :$start, :$end,\n           :@tics where Array[AnyTicsTic] | Array[],\n           :$format, :$font-name, :$font-size, Bool :$enhanced,\n           TrueOnly :$numeric, TrueOnly :$timedate, TrueOnly :$geographic,\n           TrueOnly :$rangelimited,\n           :$textcolor, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nControls the major (labeled) tics on the z axis.\n\n### x2tics\n\nDefined as:\n\n    method x2tics(\n           TrueOnly :$axis, TrueOnly :$border, Bool :$mirror,\n           TrueOnly :$in, TrueOnly :$out, TrueOnly :$scale-default, :$scale-major, :$scale-minor, AnyTicsRotate :$rotate, AnyTicsOffset :$offset,\n           TrueOnly :$left, TrueOnly :$right, TrueOnly :$center, TrueOnly :$autojustify,\n           TrueOnly :$add,\n           TrueOnly :$autofreq,\n           :$incr,\n           :$start, :$end,\n           :@tics where Array[AnyTicsTic] | Array[],\n           :$format, :$font-name, :$font-size, Bool :$enhanced,\n           TrueOnly :$numeric, TrueOnly :$timedate, TrueOnly :$geographic,\n           TrueOnly :$rangelimited,\n           :$textcolor, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nControls the major (labeled) tics on the x2 axis.\n\n### y2tics\n\nDefined as:\n\n    method y2tics(\n           TrueOnly :$axis, TrueOnly :$border, Bool :$mirror,\n           TrueOnly :$in, TrueOnly :$out, TrueOnly :$scale-default, :$scale-major, :$scale-minor, AnyTicsRotate :$rotate, AnyTicsOffset :$offset,\n           TrueOnly :$left, TrueOnly :$right, TrueOnly :$center, TrueOnly :$autojustify,\n           TrueOnly :$add,\n           TrueOnly :$autofreq,\n           :$incr,\n           :$start, :$end,\n           :@tics where Array[AnyTicsTic] | Array[],\n           :$format, :$font-name, :$font-size, Bool :$enhanced,\n           TrueOnly :$numeric, TrueOnly :$timedate, TrueOnly :$geographic,\n           TrueOnly :$rangelimited,\n           :$textcolor, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nControls the major (labeled) tics on the y2 axis.\n\n### cbtics\n\nDefined as:\n\n    method cbtics(\n           TrueOnly :$axis, TrueOnly :$border, Bool :$mirror,\n           TrueOnly :$in, TrueOnly :$out, TrueOnly :$scale-default, :$scale-major, :$scale-minor, AnyTicsRotate :$rotate, AnyTicsOffset :$offset,\n           TrueOnly :$left, TrueOnly :$right, TrueOnly :$center, TrueOnly :$autojustify,\n           TrueOnly :$add,\n           TrueOnly :$autofreq,\n           :$incr,\n           :$start, :$end,\n           :@tics where Array[AnyTicsTic] | Array[],\n           :$format, :$font-name, :$font-size, Bool :$enhanced,\n           TrueOnly :$numeric, TrueOnly :$timedate, TrueOnly :$geographic,\n           TrueOnly :$rangelimited,\n           :$textcolor, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nControls the major (labeled) tics on the color box axis.\n\n### legend\n\nDefined as:\n\n    method legend(\n           TrueOnly :$on, TrueOnly :$off, TrueOnly :$default, TrueOnly :$inside, TrueOnly :$outside, TrueOnly :$lmargin, TrueOnly :$rmargin, TrueOnly :$tmargin, TrueOnly :$bmargin,\n           :$at,\n           TrueOnly :$left, TrueOnly :$right, TrueOnly :$center, TrueOnly :$top, TrueOnly :$bottom,\n           TrueOnly :$vertical, TrueOnly :$horizontal, TrueOnly :$Left, TrueOnly :$Right,\n           Bool :$opaque, Bool :$reverse, Bool :$invert,\n           :$samplen, :$spacing, :$width, :$height,\n           TrueOnly :$autotitle, TrueOnly :$columnheader, :$title, :$font-name, :$font-size, :$textcolor,\n           Bool :$box, :$linestyle, :$linetype, :$linewidth,\n           LegendMax :$maxcols, LegendMax :$maxrows, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nEnables a key (or legend) containing a title and a sample (line, point, box) for each plot in the graph.\n\n### border\n\nDefined as:\n\n    method border(\n           :$integer, TrueOnly :$front, TrueOnly :$back, TrueOnly :$behind,\n           :lw(:$linewidth), :ls(:$linestyle), :lt(:$linetype), :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nControls the display of the graph borders for the plot and splot commands.\n\n### grid\n\nDefined as:\n\n    method grid(\n           Bool :$xtics, TrueOnly :$mxtics, Bool :$ytics, TrueOnly :$mytics, Bool :$ztics, TrueOnly :$mztics,\n           Bool :$x2tics, TrueOnly :$mx2tics, Bool :$y2tics, TrueOnly :$my2tics, Bool :$cbtics, TrueOnly :$mcbtics,\n           :$polar, TrueOnly :$layerdefault, TrueOnly :$front, TrueOnly :$back,\n           :ls(:@linestyle), :lt(:@linetype), :lw(:@linewidth), :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nAllows grid lines to be drawn on the plot.\n\n### timestamp\n\nDefined as:\n\n    method timestamp(\n            Str :$format, TrueOnly :$top, TrueOnly :$bottom, Bool :$rotate,\n            :$offset, :$font-name, :$font-size, :$textcolor, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nPlaces the time and date of the plot in the left margin.\n\n### rectangle\n\nDefined as:\n\n    multi method rectangle(\n          :$index!, :$from, :$to,\n          TrueOnly :$front, TrueOnly :$back, TrueOnly :$behind, Bool :$clip, :$fillcolor, :$fillstyle,\n          TrueOnly :$default, :$linewidth, :$dashtype, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\n    multi method rectangle(\n          :$index, :$from, :$rto,\n          TrueOnly :$front, TrueOnly :$back, TrueOnly :$behind, Bool :$clip, :$fillcolor, :$fillstyle,\n          TrueOnly :$default, :$linewidth, :$dashtype, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nDefines a single rectangle which will appear in all subsequent 2D plot.\n\n### ellipse\n\nDefined as:\n\n    method ellipse(\n           :$index, :center(:$at), :$w!, :$h!,\n           TrueOnly :$front, TrueOnly :$back, TrueOnly :$behind, Bool :$clip, :$fillcolor, :$fillstyle,\n           TrueOnly :$default, :$linewidth, :$dashtype, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nDefines a single ellipse which will appear in all subsequent 2D plot.\n\n### circle\n\nDefined as:\n\n    method circle(\n           :$index, :center(:$at), :$radius!,\n           TrueOnly :$front, TrueOnly :$back, TrueOnly :$behind, Bool :$clip, :$fillcolor, :$fillstyle,\n           TrueOnly :$default, :$linewidth, :$dashtype, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nDefines a single circle which will appear in all subsequent 2D plot.\n\n### polygon\n\nDefined as:\n\n    method polygon(\n           :$index, :$from, :@to,\n           TrueOnly :$front, TrueOnly :$back, TrueOnly :$behind, Bool :$clip, :$fillcolor, :$fillstyle,\n           TrueOnly :$default, :$linewidth, :$dashtype, :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nDefines a single polygon which will appear in all subsequent 2D plot.\n\n### title\n\nDefined as:\n\n    method title(\n           Str :$text, :$offset, :$font-name, :$font-size, :tc(:$textcolor), :$colorspec, Bool :$enhanced,\n           :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nProduces a plot title that is centered at the top of the plot.\n\n### arrow\n\nDefined as:\n\n    multi method arrow(\n          :$tag, :$from, :$to, Bool :$head, TrueOnly :$backhead, TrueOnly :$heads,\n          :$head-length, :$head-angle, :$back-angle,\n          Bool :$filled, TrueOnly :$empty, TrueOnly :$border,\n          TrueOnly :$front, TrueOnly :$back,\n          :ls(:$linestyle), :lt(:$linetype), :lw(:$linewidth), :lc(:$linecolor), :dt(:$dashtype), :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nPlaces an arrow on a plot.\n\n### multiplot\n\nDefined as:\n\n    multi method arrow(\n          :$tag, :$from, :$rto, Bool :$head, TrueOnly :$backhead, TrueOnly :$heads,\n          :$head-length, :$head-angle, :$back-angle,\n          Bool :$filled, TrueOnly :$empty, TrueOnly :$border,\n          TrueOnly :$front, TrueOnly :$back,\n          :ls(:$linestyle), :lt(:$linetype), :lw(:$linewidth), :lc(:$linecolor), :dt(:$dashtype), :\u0026writer? = -\u003e $msg { self.command: $msg }\n    )\n\nPlaces gnuplot in the multiplot mode, in which several plots are placed next to each other on the same page or screen window.\n\n### command\n\nDefined as:\n\n    method command(Str $command)\n\nRuns a given `$command`. If there are no appropriate interfaces, this method will be a good alternative.\n\nEXAMPLES\n========\n\n3D surface from a grid (matrix) of Z values\n-------------------------------------------\n\n### SOURCE\n\n    use Chart::Gnuplot;\n\n    my $gnu = Chart::Gnuplot.new(:terminal(\"png\"), :filename(\"surface.dem.00.png\"));\n    $gnu.title(:text(\"3D surface from a grid (matrix) of Z values\"));\n    $gnu.xrange(:min(-0.5), :max(4.5));\n    $gnu.yrange(:min(-0.5), :max(4.5));\n    $gnu.grid;\n    $gnu.command(\"set hidden3d\");\n\n    my @grid = (q:to/EOF/).split(\"\\n\", :skip-empty)\u003e\u003e.split(\" \", :skip-empty);\n    5 4 3 1 0\n    2 2 0 0 1\n    0 0 0 1 0\n    0 0 0 2 3\n    0 1 2 4 3\n    EOF\n\n    $gnu.splot(:vertices(@grid), :style(\"lines\"), :title(False), :matrix);\n    $gnu.dispose;\n\n### OUTPUT\n\n\u003cimg src=\"surface.dem.00.png\" alt=\"3D surface from a grid (matrix) of Z values\"\u003e\n\nsin(x)\n------\n\n### SOURCE\n\n    use Chart::Gnuplot;\n\n    my $gnu = Chart::Gnuplot.new(:terminal(\"png\"), :filename(\"sinx.png\"));\n    $gnu.title(:text(\"sin(x) curve\"));\n    $gnu.plot(:function('sin(x)'));\n    $gnu.dispose;\n\n### OUTPUT\n\n\u003cimg src=\"sinx.png\" alt=\"sin(x)\"\u003e\n\nRecall-Precision Curve\n----------------------\n\n### SOURCE\n\n    use v6;\n    use Chart::Gnuplot;\n\n    my $gnu = Chart::Gnuplot.new(:terminal(\"png\"), :filename(\"recprec.png\"));\n    $gnu.title(:text(\"Recall-Precision Curve\"));\n    $gnu.ylabel(:label(\"Precision\"));\n    $gnu.xlabel(:label(\"Recall\"));\n    $gnu.xrange(:min(0.0), :max(1.0));\n    $gnu.yrange(:min(0.0), :max(1.0));\n\n    my @methodA = (q:to/EOF/).split(\"\\n\", :skip-empty)\u003e\u003e.split(\" \", :skip-empty);\n    0.0 1.0\n    0.1 0.95\n    0.2 0.9\n    0.3 0.85\n    0.4 0.82\n    0.5 0.6\n    0.6 0.55\n    0.7 0.51\n    0.8 0.4\n    0.9 0.38\n    1.0 0.35\n    EOF\n\n    my @methodB = (q:to/EOF/).split(\"\\n\", :skip-empty)\u003e\u003e.split(\" \", :skip-empty);\n    0.0 1.0\n    0.1 0.95\n    0.2 0.8\n    0.3 0.5\n    0.4 0.4\n    0.5 0.3\n    0.6 0.2\n    0.7 0.1\n    0.8 0.08\n    0.9 0.05\n    1.0 0.05\n    EOF\n\n    my %methodA = %(:vertices(@methodA), :style(\"linespoints\"), :title(\"proposed\"), :lc(qw/rgb \"green\"/), :pt(10));\n    my %methodB = %(:vertices(@methodB), :style(\"linespoints\"), :title(\"baseline\"), :lc(qw/rgb \"red\"/), :pt(13));\n\n    $gnu.plot(|%methodA);\n    $gnu.plot(|%methodB);\n    $gnu.dispose;\n\n### OUTPUT\n\n\u003cimg src=\"recprec.png\" alt=\"recall precision curve\"\u003e\n\nHow to use Chart::Gnuplot on jupyter?\n=====================================\n\nOne way to do this is:\n\n  * 1. Write a svg image as a tmp file.\n\n  * 2. Read this tmp file and remove the first superfluous line.\n\nIf you haven't setup Raku kernel yet, use [Jupyter::Kernel](https://github.com/bduggan/raku-jupyter-kernel).\n\n### SOURCE\n\n    use Chart::Gnuplot;\n    use Chart::Gnuplot::Subset;\n    use File::Temp;\n\n    my ($filename, $filehandle);\n\n    # NOTE: Shouldn't remove both ENTER and LEAVE blocks. File::Temp's auto-unlink doesn't seem to work on jupyter.\n    ENTER {\n      ($filename, $filehandle) = tempfile(:tempdir(\"/tmp\"), :suffix(\".svg\"));\n    }\n\n    LEAVE {\n      $filehandle.close;\n      $filename.IO.unlink;\n    }\n\n    my $gnu = Chart::Gnuplot.new(:terminal(\"svg\"), :filename($filename));\n\n    my @data = (q:to/EOF/).split(\"\\n\", :skip-empty)\u003e\u003e.split(\" \", :skip-empty);\n    Year Male Female\n    1950 100 90\n    1960 100 90\n    1970 80 70\n    1980 130 140\n    1990 140 120\n    2000 200 210\n    2010 240 230\n    2020 400 420\n    EOF\n\n    my ($header, *@body) = @data;\n\n    $gnu.command(\"set style histogram clustered\");\n    $gnu.legend(:left);\n    my AnyTicsTic @tics = (@body\u003e\u003e.[0]).pairs.map(-\u003e (:key($pos), :value($year)) { %(:label($year), :pos($pos)) });\n    $gnu.xtics(:tics(@tics));\n    $gnu.xlabel(:label($header[0]));\n    $gnu.plot(:vertices(@body), :using([2]), :style(\"histogram\"), :title($header[1]), :fill(\"solid 1.0\"));\n    $gnu.plot(:vertices(@body), :using([3]), :style(\"histogram\"), :title($header[2]), :fill(\"solid 1.0\"));\n    $gnu.dispose;\n\n    $filehandle.lines[1..*].join(\"\\n\");\n\nThe example ipynb file is here: [/notebooks/synopsis.ipynb](/notebooks/synopsis.ipynb).\n\nAUTHOR\n======\n\ntitsuki \u003ctitsuki@cpan.org\u003e\n\nCOPYRIGHT AND LICENSE\n=====================\n\nCopyright 2017 titsuki\n\nThis library is free software; you can redistribute it and/or modify it under the GNU General Public License version 3.0.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitsuki%2Fraku-chart-gnuplot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftitsuki%2Fraku-chart-gnuplot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftitsuki%2Fraku-chart-gnuplot/lists"}