Productivity Tools for Plotly + Pandas

Overview

Cufflinks

This library binds the power of plotly with the flexibility of pandas for easy plotting.

This library is available on https://github.com/santosjorge/cufflinks

This tutorial assumes that the plotly user credentials have already been configured as stated on the getting started guide.

Tutorials:

3D Charts

Release Notes

v0.17.0

Support for Plotly 4.x
Cufflinks is no longer compatible with Plotly 3.x

v0.14.0

Support for Plotly 3.0

v0.13.0

New iplot helper. To see a comprehensive list of parameters cf.help()

# For a list of supported figures
cf.help()
# Or to see the parameters supported that apply to a given figure try
cf.help('scatter')
cf.help('candle') #etc

v0.12.0

Removed dependecies on ta-lib. This library is no longer required. All studies have be rewritten in Python.

v0.11.0

  • QuantFigure is a new class that will generate a graph object with persistence. Parameters can be added/modified at any given point.

This can be as easy as:

df=cf.datagen.ohlc()
qf=cf.QuantFig(df,title='First Quant Figure',legend='top',name='GS')
qf.add_bollinger_bands()
qf.iplot()

QuantFigure

  • Technical Analysis Studies can be added on demand.
qf.add_sma([10,20],width=2,color=['green','lightgreen'],legendgroup=True)
qf.add_rsi(periods=20,color='java')
qf.add_bollinger_bands(periods=20,boll_std=2,colors=['magenta','grey'],fill=True)
qf.add_volume()
qf.add_macd()
qf.iplot()

Technical Analysis

v0.10.0

  • rangeslider to display a date range slider at the bottom
    • cf.datagen.ohlc().iplot(kind='candle',rangeslider=True)
  • rangeselector to display buttons to change the date range displayed
    • cf.datagen.ohlc(500).iplot(kind='candle', rangeselector={ 'steps':['1y','2 months','5 weeks','ytd','2mtd','reset'], 'bgcolor' : ('grey',.3), 'x': 0.3 , 'y' : 0.95})
  • Customise annotions, with fontsize,fontcolor,textangle
    • Label mode
      • cf.datagen.lines(1,mode='stocks').iplot(kind='line', annotations={'2015-02-02':'Market Crash', '2015-03-01':'Recovery'}, textangle=-70,fontsize=13,fontcolor='grey')
    • Explicit mode
      • cf.datagen.lines(1,mode='stocks').iplot(kind='line', annotations=[{'text':'exactly here','x':'0.2', 'xref':'paper','arrowhead':2, 'textangle':-10,'ay':150,'arrowcolor':'red'}])

v0.9.0

  • Figure.iplot() to plot figures
  • New high performing candle and ohlc plots
    • cf.datagen.ohlc().iplot(kind='candle')

v0.8.0

  • 'cf.datagen.choropleth()' to for sample choropleth data.
  • 'cf.datagen.scattergeo()' to for sample scattergeo data.
  • Support for choropleth and scattergeo figures in iplot
  • 'cf.get_colorscale' for maps and plotly objects that support colorscales

v0.7.1

  • xrange, yrange and zrange can be specified in iplot and getLayout
    • cf.datagen.lines(1).iplot(yrange=[5,15])
  • layout_update can be set in iplot and getLayout to explicitly update any Layout value

v0.7

  • Support for Python 3

v0.6

See the IPython Notebook

  • Support for pie charts
    • cf.datagen.pie().iplot(kind='pie',labels='labels',values='values')
  • Generate Open, High, Low, Close data
    • datagen.ohlc()
  • Candle Charts support
    • ohlc=cf.datagen.ohlc()
      ohlc.iplot(kind='candle',up_color='blue',down_color='red')
  • OHLC (Bar) Charts support
    • ohlc=cf.datagen.ohlc()
      ohlc.iplot(kind='ohlc',up_color='blue',down_color='red')
  • Support for logarithmic charts ( logx | logy )
    • df=pd.DataFrame([x**2] for x in range(100))
      df.iplot(kind='lines',logy=True)
  • Support for MulitIndex DataFrames
  • Support for Error Bars ( error_x | error_y )
    • cf.datagen.lines(1,5).iplot(kind='bar',error_y=[1,2,3.5,2,2])
    • cf.datagen.lines(1,5).iplot(kind='bar',error_y=20, error_type='percent')
  • Support for continuous error bars
    • cf.datagen.lines(1).iplot(kind='lines',error_y=20,error_type='continuous_percent')
    • cf.datagen.lines(1).iplot(kind='lines',error_y=10,error_type='continuous',color='blue')
  • Technical Analysis Studies for Timeseries (beta)
    • Simple Moving Averages (SMA)
      • cf.datagen.lines(1,500).ta_plot(study='sma',periods=[13,21,55])
    • Relative Strength Indicator (RSI)
      • cf.datagen.lines(1,200).ta_plot(study='boll',periods=14)
    • Bollinger Bands (BOLL)
      • cf.datagen.lines(1,200).ta_plot(study='rsi',periods=14)
    • Moving Average Convergence Divergence (MACD)
      • cf.datagen.lines(1,200).ta_plot(study='macd',fast_period=12,slow_period=26, signal_period=9)

v0.5

  • Support of offline charts
    • cf.go_offline()
    • cf.go_online()
    • cf.iplot(figure,online=True) (To force online whilst on offline mode)
  • Support for secondary axis
    • fig=cf.datagen.lines(3,columns=['a','b','c']).figure()
      fig=fig.set_axis('b',side='right')
      cf.iplot(fig)

v0.4

  • Support for global theme setting
    • cufflinks.set_config_file(theme='pearl')
  • New theme ggplot
    • cufflinks.datagen.lines(5).iplot(theme='ggplot')
  • Support for horizontal bar charts barh
    • cufflinks.datagen.lines(2).iplot(kind='barh',barmode='stack',bargap=.1)
  • Support for histogram orientation and normalization
    • cufflinks.datagen.histogram().iplot(kind='histogram',orientation='h',norm='probability')
  • Support for area plots
    • cufflinks.datagen.lines(4).iplot(kind='area',fill=True,opacity=1)
  • Support for subplots
    • cufflinks.datagen.histogram(4).iplot(kind='histogram',subplots=True,bins=50)
    • cufflinks.datagen.lines(4).iplot(subplots=True,shape=(4,1),shared_xaxes=True,vertical_spacing=.02,fill=True)
  • Support for scatter matrix to display the distribution amongst every series in the DataFrame
    • cufflinks.datagen.lines(4,1000).scatter_matrix()
  • Support for vline and hline for horizontal and vertical lines
    • cufflinks.datagen.lines(3).iplot(hline=[2,3])
    • cufflinks.datagen.lines(3).iplot(hline=dict(y=2,color='blue',width=3))
  • Support for vspan and hspan for horizontal and vertical areas
    • cufflinks.datagen.lines(3).iplot(hspan=(-1,2))
    • cufflinks.datagen.lines(3).iplot(hspan=dict(y0=-1,y1=2,color='orange',fill=True,opacity=.4))

v0.3.2

  • Global setting for public charts
    • cufflinks.set_config_file(world_readable=True)

v0.3

  • Enhanced Spread charts
    • cufflinks.datagen.lines(2).iplot(kind='spread')
  • Support for Heatmap charts
    • cufflinks.datagen.heatmap().iplot(kind='heatmap')
  • Support for Bubble charts
    • cufflinks.datagen.bubble(4).iplot(kind='bubble',x='x',y='y',text='text',size='size',categories='categories')
  • Support for Bubble3d charts
    • cufflinks.datagen.bubble3d(4).iplot(kind='bubble3d',x='x',y='y',z='z',text='text',size='size',categories='categories')
  • Support for Box charts
    • cufflinks.datagen.box().iplot(kind='box')
  • Support for Surface charts
    • cufflinks.datagen.surface().iplot(kind='surface')
  • Support for Scatter3d charts
    • cufflinks.datagen.scatter3d().iplot(kind='scatter3d',x='x',y='y',z='z',text='text',categories='categories')
  • Support for Histograms
    • cufflinks.datagen.histogram(2).iplot(kind='histogram')
  • Data generation for most common plot types
    • cufflinks.datagen
  • Data extraction: Extract data from any Plotly chart. Data is delivered in DataFrame
    • cufflinks.to_df(Figure)
  • Integration with colorlover
    • Support for scales iplot(colorscale='accent') to plot a chart using an accent color scale
    • cufflinks.scales() to see all available scales
  • Support for named colors * iplot(colors=['pink','red','yellow'])
Owner
Jorge Santos
Jorge Santos
Ana's Portfolio

Ana's Portfolio ✌️ Welcome to my Portfolio! You will find here different Projects I have worked on (from scratch) 💪 Projects 💻 1️⃣ Hangman game (Mad

Ana Katherine Cortes Sobrino 9 Mar 15, 2022
Jupyter notebook and datasets from the pandas Q&A video series

Python pandas Q&A video series Read about the series, and view all of the videos on one page: Easier data analysis in Python with pandas. Jupyter Note

Kevin Markham 2k Jan 05, 2023
This is a Web scraping project using BeautifulSoup and Python to scrape basic information of all the Test matches played till Jan 2022.

Scraping-test-matches-data This is a Web scraping project using BeautifulSoup and Python to scrape basic information of all the Test matches played ti

Souradeep Banerjee 4 Oct 10, 2022
Squidpy is a tool for the analysis and visualization of spatial molecular data.

Squidpy is a tool for the analysis and visualization of spatial molecular data. It builds on top of scanpy and anndata, from which it inherits modularity and scalability. It provides analysis tools t

Theis Lab 251 Dec 19, 2022
Functions for easily making publication-quality figures with matplotlib.

Data-viz utils 📈 Functions for data visualization in matplotlib 📚 API Can be installed using pip install dvu and then imported with import dvu. You

Chandan Singh 16 Sep 15, 2022
A research of IT labor market based especially on hh.ru. Salaries, rate of technologies and etc.

hh_ru_research Проект реализован в учебных целях анализа рынка труда, в особенности по hh.ru Input data В качестве входных данных используются сериали

3 Sep 07, 2022
Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js

pivottablejs: the Python module Drag’n’drop Pivot Tables and Charts for Jupyter/IPython Notebook, care of PivotTable.js Installation pip install pivot

Nicolas Kruchten 512 Dec 26, 2022
PanGraphViewer -- show panenome graph in an easy way

PanGraphViewer -- show panenome graph in an easy way Table of Contents Versions and dependences Desktop-based panGraphViewer Library installation for

16 Dec 17, 2022
Pydrawer: The Python package for visualizing curves and linear transformations in a super simple way

pydrawer 📐 The Python package for visualizing curves and linear transformations in a super simple way. ✏️ Installation Install pydrawer package with

Dylan Tintenfich 56 Dec 30, 2022
SummVis is an interactive visualization tool for text summarization.

SummVis is an interactive visualization tool for analyzing abstractive summarization model outputs and datasets.

Robustness Gym 246 Dec 08, 2022
Fastest Gephi's ForceAtlas2 graph layout algorithm implemented for Python and NetworkX

ForceAtlas2 for Python A port of Gephi's Force Atlas 2 layout algorithm to Python 2 and Python 3 (with a wrapper for NetworkX and igraph). This is the

Bhargav Chippada 227 Jan 05, 2023
Plotting library for IPython/Jupyter notebooks

bqplot 2-D plotting library for Project Jupyter Introduction bqplot is a 2-D visualization system for Jupyter, based on the constructs of the Grammar

3.4k Dec 29, 2022
flask extension for integration with the awesome pydantic package

Flask-Pydantic Flask extension for integration of the awesome pydantic package with Flask. Installation python3 -m pip install Flask-Pydantic Basics v

249 Jan 06, 2023
GitHubPoster - Make everything a GitHub svg poster

GitHubPoster Make everything a GitHub svg poster 支持 Strava 开心词场 扇贝 Nintendo Switch GPX 多邻国 Issue

yihong 1.3k Jan 02, 2023
Color maps for POV-Ray v3.7 from the Plasma, Inferno, Magma and Viridis color maps in Python's Matplotlib

POV-Ray-color-maps Color maps for POV-Ray v3.7 from the Plasma, Inferno, Magma and Viridis color maps in Python's Matplotlib. The include file Color_M

Tor Olav Kristensen 1 Apr 05, 2022
Python script for writing text on github contribution chart.

Github Contribution Drawer Python script for writing text on github contribution chart. Requirements Python 3.X Getting Started Create repository Put

Steven 0 May 27, 2022
Certificate generating and sending system written in Python.

Certificate Generator & Sender How to use git clone https://github.com/saadhaxxan/Certificate-Generator-Sender.git cd Certificate-Generator-Sender Add

Saad Hassan 11 Dec 01, 2022
Implement the Perspective open source code in preparation for data visualization

Task Overview | Installation Instructions | Link to Module 2 Introduction Experience Technology at JP Morgan Chase Try out what real work is like in t

Abdulazeez Jimoh 1 Jan 23, 2022
649 Pokémon palettes as CSVs, with a Python lib to turn names/IDs into palettes, or MatPlotLib compatible ListedColormaps.

PokePalette 649 Pokémon, broken down into CSVs of their RGB colour palettes. Complete with a Python library to convert names or Pokédex IDs into eithe

11 Dec 05, 2022
A Python library for plotting hockey rinks with Matplotlib.

Hockey Rink A Python library for plotting hockey rinks with Matplotlib. Installation pip install hockey_rink Current Rinks The following shows the cus

24 Jan 02, 2023