[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-7751":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},7751,"YouPlot","red-data-tools\u002FYouPlot","red-data-tools","A command line tool that draw plots on the terminal.","",null,"Ruby",4759,68,20,16,0,1,3,18,4,27.52,"MIT License",false,"main",true,[27,28,29,30,31,32,33],"cli","csv","ruby","terminal","tsv","tui","visualization","2026-06-12 02:01:44","\u003Cdiv align=\"center\">\n  \u003Cimg src=\"logo.svg\">\n  \u003Chr>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fred-data-tools\u002FYouPlot\u002Factions\u002Fworkflows\u002Fci.yml\">\u003Cimg alt=\"Build Status\" src=\"https:\u002F\u002Fgithub.com\u002Fred-data-tools\u002FYouPlot\u002Fworkflows\u002Ftest\u002Fbadge.svg\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Frubygems.org\u002Fgems\u002Fyouplot\u002F\">\u003Cimg alt=\"Gem Version\" src=\"https:\u002F\u002Fbadge.fury.io\u002Frb\u002Fyouplot.svg\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Frubydoc.info\u002Fgems\u002Fyouplot\u002F\">\u003Cimg alt=\"Docs Stable\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-stable-blue.svg\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE.txt\">\u003Cimg alt=\"The MIT License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg\">\u003C\u002Fa>\n  \n  YouPlot is a command line tool that draws plots on the terminal.\n\n  :bar_chart: Powered by [UnicodePlot](https:\u002F\u002Fgithub.com\u002Fred-data-tools\u002Funicode_plot.rb)\n\u003C\u002Fdiv>\n\n## Installation\n\n```\nbrew install youplot\n```\n\n```\ngem install youplot\n```\n\n```\nnix shell nixpkgs#youplot\n```\n\n```\nguix install youplot\n```\n\n```\nconda install -c conda-forge ruby\nconda install -c conda-forge compilers\ngem install youplot\n```\n\n## Quick Start\n\n\u003Cimg alt=\"barplot\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999903-d36a2d00-3d24-11eb-9361-b89116f44122.png\" width=160> \u003Cimg alt=\"histogram\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999820-21cafc00-3d24-11eb-86db-e410d19b07df.png\" width=160> \u003Cimg alt=\"scatter\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999827-27284680-3d24-11eb-9903-551857eaa69c.png\" width=160> \u003Cimg alt=\"density\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999828-2abbcd80-3d24-11eb-902c-2f44266fa6ae.png\" width=160> \u003Cimg alt=\"boxplot\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999830-2e4f5480-3d24-11eb-8891-728c18bf5b35.png\" width=160>\n\n`uplot \u003Ccommand> [options] \u003Cdata.tsv>`\n\n### barplot\n\n```sh\ncurl -sL https:\u002F\u002Fgit.io\u002FISLANDScsv \\\n| sort -nk2 -t, \\\n| tail -n15 \\\n| uplot bar -d, -t \"Areas of the World's Major Landmasses\"\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"barplot\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999903-d36a2d00-3d24-11eb-9361-b89116f44122.png\">\n\u003C\u002Fp>\n\n\n\n```sh\n# For offline user: Sorts files in a directory by size and shows a bar graph.\nls -l | awk '{print $9, $5}' | sort -nk 2 | uplot bar -d ' '\n```\n\n### histogram\n\n```sh\necho -e \"from numpy import random;\" \\\n        \"n = random.randn(10000);\"  \\\n        \"print('\\\\\\n'.join(str(i) for i in n))\" \\\n| python3 \\\n| uplot hist --nbins 20\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"histogram\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999820-21cafc00-3d24-11eb-86db-e410d19b07df.png\">\n\u003C\u002Fp>\n\n### lineplot\n\n```sh\ncurl -sL https:\u002F\u002Fgit.io\u002FAirPassengers \\\n| cut -f2,3 -d, \\\n| uplot line -d, -w 50 -h 15 -t AirPassengers --xlim 1950,1960 --ylim 0,600\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"lineplot\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999825-24c5ec80-3d24-11eb-99f4-c642e8d221bc.png\">\n\u003C\u002Fp>\n\n```sh\n# For offline users: Calculates sin values (0-2*pi) and plots a sine wave.\npython3 -c '\nfrom math import sin, pi\ndata = \"\\n\".join(f\"{i*pi\u002F50}\\t{sin(i*pi\u002F50)}\" for i in range(101))\nprint(data)' | uplot line\n```\n\n### scatter\n\n```sh\ncurl -sL https:\u002F\u002Fgit.io\u002FIRIStsv \\\n| cut -f1-4 \\\n| uplot scatter -H -t IRIS\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"scatter\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999827-27284680-3d24-11eb-9903-551857eaa69c.png\">\n\u003C\u002Fp>\n\n\n```sh\n# For offline users\ncat test\u002Ffixtures\u002Firis.csv | cut -f1-4 -d, | uplot scatter -H -d, -t IRIS\n```\n\n### density\n\n```sh\ncurl -sL https:\u002F\u002Fgit.io\u002FIRIStsv \\\n| cut -f1-4 \\\n| uplot density -H -t IRIS\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"density\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999828-2abbcd80-3d24-11eb-902c-2f44266fa6ae.png\">\n\u003C\u002Fp>\n\n```sh\n# For offline users\ncat test\u002Ffixtures\u002Firis.csv | cut -f1-4 -d, | uplot density -H -d, -t IRIS\n```\n\n### boxplot\n\n```sh\ncurl -sL https:\u002F\u002Fgit.io\u002FIRIStsv \\\n| cut -f1-4 \\\n| uplot boxplot -H -t IRIS\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"boxplot\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999830-2e4f5480-3d24-11eb-8891-728c18bf5b35.png\">\n\u003C\u002Fp>\n\n```sh\n# For offline users\ncat test\u002Ffixtures\u002Firis.csv | cut -f1-4 -d, | uplot boxplot -H -d, -t IRIS\n```\n\n### count\n\nCount processes by user ID.\n\n```sh\nps aux | awk '{print $1}' | uplot count\n```\n\nCount the number of chromosomes where genes are located. \n\n```sh\ncat gencode.v35.annotation.gff3 \\\n| grep -v '#' | grep 'gene' | cut -f1 \\\n| uplot count -t \"The number of human gene annotations per chromosome\"  -c blue\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"count\" src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F5798442\u002F101999832-30b1ae80-3d24-11eb-96fe-e5000bed1f5c.png\">\n\u003C\u002Fp>\n\n* [GENCODE - Human Release](https:\u002F\u002Fwww.gencodegenes.org\u002Fhuman\u002F)\n\nNote: `count` is not very fast because it runs in a Ruby script.\nThis is fine in most cases, as long as the data size is small. If you want to visualize huge data, it is faster to use a combination of common Unix commands as shown below.\n\n```sh\ncat gencode.v35.annotation.gff3 | grep -v '#' | grep 'gene' | cut -f1 \\\n| sort | uniq -c | sort -nrk1 \\\n| uplot bar --fmt yx -d ' ' -t \"The number of human gene annotations per chromosome\"  -c blue\n```\n\n## Usage\n\n### Commands\n\n`uplot` is the shortened form of `youplot`. You can use either.\n\n| Command                                        | Description                       |\n|------------------------------------------------|-----------------------------------|\n| `cat data.tsv \\| uplot \u003Ccommand> [options]`    | Take input from stdin             |\n| `uplot \u003Ccommand> [options] data.tsv ...`       | Take input from files             |\n| `pipeline1 \\| uplot \u003Ccommand> -O \\| pipeline2` | Outputs data from stdin to stdout |\n\n### Subcommands\n\nThe following sub-commands are available.\n\n| command   | short | how it works                           |\n|-----------|-------|----------------------------------------|\n| barplot   | bar   | draw a horizontal barplot              |\n| histogram | hist  | draw a horizontal histogram            |\n| lineplot  | line  | draw a line chart                      |\n| lineplots | lines | draw a line chart with multiple series |\n| scatter   | s     | draw a scatter plot                    |\n| density   | d     | draw a density plot                    |\n| boxplot   | box   | draw a horizontal boxplot              |\n|           |       |                                        |\n| count     | c     | draw a barplot based on the number of occurrences (slow) |\n|           |       |                                        |\n| colors    | color | show the list of available colors      |\n\n### Output the plot\n\n* `-o`\n  * By default, the plot is output to **standard error output**.\n  * If you want to output to standard output, Use hyphen ` -o -` or no argument `uplot s -o | `.\n\n### Output the input data\n\n* `-O`\n  * By default, the input data is not shown anywhere.\n  * If you want to pass the input data directly to the standard output, Use hyphen `-O -` or no argument `uplot s -O |`.\n  * This is useful when passing data to a subsequent pipeline.\n\n### Header\n\n* `-H`\n  * If input data contains a header line, you need to specify the `-H` option.\n\n### Delimiter\n\n* `-d`\n  * You do not need to use `-d` option for tab-delimited text since the default value is tab.\n  * To specify a blank space, you can use `uplot bar -d ' ' data.txt`. \n\n### Real-time data\n\n* `-p` `--progress`\n  * Experimental progressive mode is currently under development.\n  * `ruby -e 'loop{puts rand(100)}' | uplot line --progress`\n\n### Show detailed options for subcommands\n\n* `--help`\n  * The `--help` option will show more detailed options for each subcommand.\n  * `uplot hist --help`\n\n### Set columns as x-axis or y-axis\n\n* YouPlot treats the first column as the X axis and the second column as the Y axis. When working with multiple series, the first column is the X axis, the second column is series Y1, the third column is series Y2, and so on. \n* If you pass only one column of data for `line` and `bar`, YouPlot will automatically use a sequential number starting from 1 as the X-axis. \n\n* `--fmt`\n  * `--fmt xyy` `--fmt xyxy` `--fmt yx` options give you a few more choices. See `youplot \u003Ccommand> --help` for more details. \n  * The fmt option may be renamed in the future. \n  * The `-x` and `-y` options might be used to specify columns in the future.\n\n* Use `awk '{print $2, $1}'` to swap columns. Use `paste` to concatenate series.\n\n### Categorical data\n\n* With GNU datamash, you can manage to handle categorized data. \n  * `cat test\u002Ffixtures\u002Firis.csv | sed '\u002F^$\u002Fd' | datamash --header-in --output-delimiter=: -t, -g5 collapse 3,4 | cut -f2-3 -d: | sed 's\u002F:\u002F\\n\u002Fg' | uplot s -d, -T --fmt xyxy`\n  * This is not so easy...\n\n### Time series\n\n* Not yet supported.\n\n### YouPlot Configuration (youplotrc)\n\nYou can specify default options in a configuration file in YAML format. For more information, enter the following command.\n\n```\nuplot --config\n```\n\n## Tools that are useful to use with YouPlot\n\n* [csvtk](https:\u002F\u002Fgithub.com\u002Fshenwei356\u002Fcsvtk)\n* [GNU datamash](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fdatamash\u002F)\n* [awk](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fgawk\u002F)\n* [xsv](https:\u002F\u002Fgithub.com\u002FBurntSushi\u002Fxsv)\n\n## Contributing\n\nYouPlot is a library under development, so even small improvements like typofix are welcome!\nPlease feel free to send us your pull requests.\n\n* [Report bugs](https:\u002F\u002Fgithub.com\u002Fred-data-tools\u002FYouPlot\u002Fissues)\n* Fix bugs and [submit pull requests](https:\u002F\u002Fgithub.com\u002Fred-data-tools\u002FYouPlot\u002Fpulls)\n* Write, clarify, or fix documentation\n  * English corrections by native speakers are welcome.\n* Suggest or add new features\n* Make a donation\n\n### Development\n\n```sh\n# fork the main repository by clicking the Fork button. \ngit clone https:\u002F\u002Fgithub.com\u002Fyour_name\u002FYouPlot\nbundle install             # Install the gem dependencies\nbundle exec rake test      # Run the test\nbundle exec rake install   # Installation from source code\nbundle exec exe\u002Fuplot      # Run youplot (Try out the edited code)\n```\n\n    Do you need commit rights to my repository?\n    Do you want to get admin rights and take over the project?\n    If so, please feel free to contact us.\n\n### Acknowledgements\n\n* [sampo grafiikka](https:\u002F\u002Flepo.sampo-grafiikka.com\u002F) - Project logo creation\n* [yutaas](https:\u002F\u002Fgithub.com\u002Fyutaas) - English proofreading\n\n## License\n\n[MIT License](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT).\n","YouPlot 是一个命令行工具，可以在终端中绘制图表。它支持多种图表类型，如条形图、直方图、散点图和密度图等，并且能够处理 CSV 和 TSV 格式的文件。该工具基于 UnicodePlot 技术实现，在文本环境中提供高质量的可视化效果。适用于需要在无图形界面环境下进行数据探索或展示的场景，比如远程服务器操作或者轻量级数据分析任务。",2,"2026-06-11 03:14:11","top_language"]