All Projects → guanqun → Git Punchcard Plot

guanqun / Git Punchcard Plot

a tool to visualize the time distribution of commits

Programming Languages

python
139335 projects - #7 most used programming language

Labels

Projects that are alternatives of or similar to Git Punchcard Plot

Basetheme
Themes for base plotting system in R
Stars: ✭ 99 (-37.34%)
Mutual labels:  plot
Argos
Argos: a data viewer that can read HDF5, NetCDF4, and other file formats.
Stars: ✭ 118 (-25.32%)
Mutual labels:  plot
Arduino Plotter
An Arduino library for easy graphing on host computer via serial communication
Stars: ✭ 129 (-18.35%)
Mutual labels:  plot
Covid19 Dashboard
🦠 Django + Plotly Coronavirus dashboard. Powerful data driven Python web-app, with an awesome UI. Contributions welcomed! Featured on 🕶Awesome-list
Stars: ✭ 100 (-36.71%)
Mutual labels:  plot
Jmathplot
Java interactive 2D and 3D plots (no OpenGL)
Stars: ✭ 113 (-28.48%)
Mutual labels:  plot
Dropseqpipe
A SingleCell RNASeq pre-processing snakemake workflow
Stars: ✭ 119 (-24.68%)
Mutual labels:  plot
Wesanderson
A Wes Anderson color palette for R
Stars: ✭ 1,343 (+750%)
Mutual labels:  plot
Hep
hep is the mono repository holding all of go-hep.org/x/hep packages and tools
Stars: ✭ 146 (-7.59%)
Mutual labels:  plot
Implot
Immediate Mode Plotting
Stars: ✭ 2,014 (+1174.68%)
Mutual labels:  plot
Asciigraph
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
Stars: ✭ 1,805 (+1042.41%)
Mutual labels:  plot
Grafica.js
A simple and configurable plotting library for p5.js
Stars: ✭ 106 (-32.91%)
Mutual labels:  plot
Java Ascii Render
ASCII renderer in pure java with no external dependencies
Stars: ✭ 112 (-29.11%)
Mutual labels:  plot
Nim Plotly
plotting library for nim-lang
Stars: ✭ 121 (-23.42%)
Mutual labels:  plot
Plotille
Plot in the terminal using braille dots.
Stars: ✭ 99 (-37.34%)
Mutual labels:  plot
G2plot
🍡 An interactive and responsive charting library
Stars: ✭ 2,072 (+1211.39%)
Mutual labels:  plot
Highcharts Chart
Polymer Element wrapper for highcharts library. Seamlessly create various types of charts from one element.
Stars: ✭ 97 (-38.61%)
Mutual labels:  plot
Soundwaveform
Generate WaveForms Images from Sounds and Videos on macOS and iOS (Swift 5.x)
Stars: ✭ 119 (-24.68%)
Mutual labels:  plot
Godot Engine.easy Charts
A Godot Engine addon for plotting general purpose charts. A collection of Control, 2D and 3D Nodes to plot every chart possible.
Stars: ✭ 146 (-7.59%)
Mutual labels:  plot
Aachartkit Swift
📈📊📱💻🖥️An elegant modern declarative data visualization chart framework for iOS, iPadOS and macOS. Extremely powerful, supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types. 极其精美而又强大的跨平台数据可视化图表框架,支持柱状图、条形图、…
Stars: ✭ 1,962 (+1141.77%)
Mutual labels:  plot
Promplot
Create plots from Prometheus metrics and send them to you
Stars: ✭ 125 (-20.89%)
Mutual labels:  plot

INTRODUCTION

This is a small script to visualize the time when commits are committed in a git repository. The idea is stolen from Github's punchcard picture(Kudos to Github)!

SCREENSHOTS

Here's the generated picture from MongoDB project:

MongoDB Punchcard

USAGE

Basic Usage

$ ./git-punchcard

basic

Provides the punchcard of the git repository at .

Supply a path to the git repository

$ ./git-punchcard path=/media/username/code/project

Supply an output file name

$ ./git-punchcard file=output-1.png

Supply a width of the output file

$ ./git-punchcard width=2000

img

Opacity of the punch marks

$ ./git-punchcard opaque=0

In the normal mode, the opacity of the punch marks is dependent on the size of the punch mark. If you set opaque=0, then all the punches will be the same color. The size will be the only indication of the number of commits in that particular range.

opaque

Supply output timezone

$ ./git-punchcard timezone=+8.5

Convert all the commit times to UTC+8.5. This is useful if the project has contributors across the world and you want to find a common window of time when all contributors are working.

timezone

Git Options

You can pipe git options to the script using the flag gitopts

Following are only examples, any valid options that can be given to log can be piped to git-punchcard

# Show a punchcard of commits from 1st January
$ ./git-punchcard gitopts="--since='1st January 2017'"

# Show a punchcard of commits from the last month
$ ./git-punchcard gitopts="--since='1 month ago'"

# Show a punchcard of commits before a particular date
$ ./git-punchcard gitopts="--before='2nd January 2016'"

# Show a punch of commits before some period
$ ./git-punchcard gitopts="--before='1 month ago'"

WHY IS IT INTERESTING

It shows how this repository is developed in developer's time. As I see it, I can get a simple clue whether a project is a spare time project or this project is totally under a company's control, thus resulting in commits from 8AM to 6PM, Monday to Friday.

PREREQUISITES


  • python (of course!)
  • pycairo module
  • git

Then you're free to go!

USAGE

  • cp git-punchcard /usr/local/bin
  • make sure that /usr/local/bin is in your $PATH environment variable.
  • invoke git punchcard
  • in the same folder, you should see a file named output.png, that's the generated image.

If you want a different name, then simply invoke git punchcard file=<another-name.png>. The default width of a picture is 1100px. If you'd like to have a higher resolution, you can run git punchcard file=<another-name.png> width=<new-width>.

If you would like to filter by a particular author then do so as follows. (all parameters are available) git punchcard author=<authorname>

The image gets scaled automatically.

LICENSE

This project is under public domain, you can do whatever you want ;) However, if you're improving this tool a bit, you can freely fork it and then send me back a pull request. I would be very glad to integrate it.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].