Графики в консоли python

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

a python command-line tool which draws basic graphs in the terminal

License

mkaz/termgraph

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

A command-line tool that draws basic graphs in the terminal, written in Python.

  • Bar Graphs
  • Color charts
  • Multi-variable
  • Stacked charts
  • Histograms
  • Horizontal or Vertical
  • Emoji!
termgraph data/ex1.dat # Reading data from data/ex1.dat 2007: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 183.32 2008: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 231.23 2009: ▇ 16.43 2010: ▇▇▇▇ 50.21 2011: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 508.97 2012: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 212.05 2014: ▏ 1.00 

An example using emoji as custom tick:

termgraph data/ex1.dat --custom-tick "🏃" --width 20 --title "Running Data" # Running Data 2007: 🏃🏃🏃🏃🏃🏃🏃 183.32 2008: 🏃🏃🏃🏃🏃🏃🏃🏃🏃 231.23 2009: 16.43 2010: 🏃 50.21 2011: 🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃🏃 508.97 2012: 🏃🏃🏃🏃🏃🏃🏃🏃 212.05 2014: 1.00 

An example using stdin and emoji:

echo "Label,3,9,1" | termgraph --custom-tick "😀" --no-label 😀😀😀 3.00 😀😀😀😀😀😀😀😀😀 9.00 😀 1.00 

Most results can be copied and pasted wherever you like, since they use standard block characters. However the color charts will not show, since they use terminal escape codes for color. A couple images to show color examples:

termgraph data/ex4.dat --color

Multi variable bar chart with colors

termgraph data/ex7.dat --color --stacked --title "Stacked Data" 

Multi variable stacked bar chart with colors

Calendar Heatmap, expects first column to be date in yyyy-mm-dd

termgraph --calendar --start-dt 2017-07-01 data/cal.dat 

Calendar Heatmap

Requires Python 3.7+, install from PyPI project

python3 -m pip install termgraph 

Note: Be sure your PATH includes the pypi install directory, for me it is ~/.local/bin/

  • Create data file with two columns either comma or space separated. The first column is your labels, the second column is a numeric data
  • termgraph [datafile]
  • Help: termgraph -h
usage: termgraph.py [-h] [(optional arguments)] [filename] draw basic graphs on terminal positional arguments: filename data file name (comma or space separated). Defaults to stdin. optional arguments: -h, --help show this help message and exit --title TITLE Title of graph --width WIDTH width of graph in characters default:50 --format FORMAT format specifier to use. --suffix SUFFIX string to add as a suffix to all data points. --no-labels Do not print the label column --no-values Do not print the values at end --space-between Print a new line after every field --color [COLOR . ] Graph bar color( s ) --vertical Vertical graph --stacked Stacked bar graph --histogram Histogram --bins BINS Bins of Histogram --different-scale Categories have different scales. --calendar Calendar Heatmap chart --start-dt START_DT Start date for Calendar chart --custom-tick CUSTOM_TICK Custom tick mark, emoji approved --delim DELIM Custom delimiter, default , or space --verbose Verbose output, helpful for debugging --label-before Display the values before the bars --version Display version and exit 

I wanted a quick way to visualize data stored in a simple text file. I initially created some scripts in R that generated graphs but this was a two step process of creating the graph and then opening the generated graph.

Читайте также:  Python paramiko copy file

After seeing command-line sparklines I figured I could do the same thing using block characters for bar charts.

All contributions are welcome, for feature requests or bug reports, use Github Issues. Pull requests are welcome to help fix or add features.

Code contributions: This repository uses the black code formatter to automatically format the code. A Github Action is setup to lint your code, to avoid failures it is recommended to setup your editor to auto format on save.

Источник

Построение графиков в Python при помощи Matplotlib

Картиной можно выразить тысячу слов. В случае с библиотекой Python matplotlib, к счастью, понадобится намного меньше слов в коде для создания качественных графиков.

Однако, matplotlib это еще и массивная библиотека, и создание графика, который будет выглядеть «просто, нормально» обычно проходит через путь проб и ошибок. Использование однострочных линий для создания базовых графиков в matplotlib – весьма просто, но умело пользоваться остальными 98% библиотеки может быть сложно.

Эта статья – руководство для пользователей Python на начальном-среднем уровне по matplotlib, с использованием как теории, так и практических примеров. Обучение по практическим примерам может быть очень продуктивным, и дает возможность получить представление даже на поверхностном уровне понимания внутренней работы и макета библиотеки.

Что мы рассмотрим?

  • Pylab и pyplot: кто есть кто?
  • Ключевые концепции дизайна matplotlib;
  • Понимание plt.subplots();
  • Визуализация массивов при помощи matplotlib;
  • Построение графиков с комбинацией pandas и matplotlib.

Эта статья подразумевает, что пользователь имеет хотя-бы минимальное представление о NumPy. Мы в основном будем пользоваться модулем numpy.random для создания «игрушечных» данных, рисовать примеры из различных статистических источников.

Читайте также:  Php getting array index

Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

Если у вас еще не установлен matplotlib, рекомендуем ознакомиться с руководством по установке, перед тем как продолжить.

Почему Matplotlib может быть сложным?

Изучение matplotlib временами может быть тяжелым процессом. Проблема не в нехватке документации (которая весьма обширная, между прочим). Сложности могут возникнуть со следующим:

  • Размер библиотеки огромный сам по себе, около 70 000 строк кода;
  • Matplotlib содержит несколько разных интерфейсов (способов построения фигуры) и может взаимодействовать с большим количеством бекендов. (Бекенды отвечают за то, как по факту будут отображаться диаграммы, не только за внутреннюю структуру);
  • Несмотря на обширность, часть собственной документации matplotlib серьезно устарела. Библиотека все еще развивается, и множество старых примеров в сети могут включать на 70% меньше кода, чем в их современной версии;

Так что, перед тем как мы перейдем к сложным примерам, не помешает освоить корневые концепции дизайна matplotlib.

Pylab: что это и нужно ли мне это?

Немножко истории: Нейробиолог Джон Д. Хантер начал разрабатывать matplotlib в 2003 году, в основном вдохновляясь эмуляцией команд программного обеспечения Mathworks MATLAB. Джон отошел в мир иной трагически рано, в возрасте 44 лет в 2012 году, и matplotlib на сегодняшний день является целиком и полностью продуктом сообщества: развивается и поддерживается множеством людей. (Джон говорил об эволюции matplotlib на конференции SciPy в 2012, которую однозначно стоит посмотреть.)

Читайте также:  Админ-панель

Одной из важных особенностей MATLAB является его глобальный стиль. Концепция импорта Python не сильно используется в MATLAB, и большинство функций MATLAB легко доступны для пользователя на верхнем уровне.

Заказать свой собственный уникальный номер можно от Сим-Трейд.ру. Быстрая доставка в день заказа и красивые номера начиная от 300 руб. с выгодным тарифным планом. Свой уникальный номер это хороший признак для введения бизнеса с момента первого звонка.

Понимание того, что корни matplotlib растут из MATLAB, помогает объяснить существование pylab. pylab – это модуль внутри библиотеки matplotlib, который был встроен для подражания общего стиля MATLAB. Он существует только для внесения ряда функций классов из NumPy и matplotlib в пространство имен, что упрощает переход пользователей MATLAB, которые не сталкивались с необходимостью в операторах импорта. Бывшие пользователи MATLAB (которые очень хорошие люди, обещаем!) полюбили его функционал, потому что при помощи from pylab import * они могут просто вызывать plot() или array() напрямую также, как они это делали в MATLAB.

Проблема здесь может быть очевидной для некоторых пользователей Python: использование from pylab import * в сессии или скрипте – как правило, плохая идея. Matplotlib сегодня прямым текстом рекомендуют не делать этого в своих руководствах:

[pylab] все еще существует по историческим причинам, но его использование не рекомендуется. Он перегружает пространства имен функциями, которые оттеняют надстройки Python и может привести к скрытым багам. Для получения интеграции IPython без использования импортов, рекомендуется использовать %matplotlib.

В глубине своей, существует целая тонна потенциально конфликтных импортов, замаскированных в коротком источнике pylab. Фактически, использование ipython —pylab (из терминала или командной строки) или %pylab (из инструментов IPython/Jupyter) легко вызывает from pylab import *

Суть в том, что matplotlib забросили этот удобный модуль и рекомендуют не использовать pylab, подтверждая ключевое правило Python – явное лучше, чем неявное.

Без необходимости в использовании pylab, мы всегда можем обойтись всего одним каноничным импортом:

Источник

Оцените статью