plotly.figure_factory.create_bullet() in Python

Plotly library of Python can be very useful for data visualization and understanding the data simply and easily.
plotly.figure_factory.create_bullet
This method is used to create bullet charts. This function can take both dataframes or a sequence of dictionaries.
Syntax: plotly.figure_factory.create_bullet(data, markers=None, measures=None, ranges=None, subtitles=None, titles=None, orientation=’h’, **layout_options)
Parameters:
data: either a list/tuple of dictionaries or a pandas DataFrame.
markers: the column name or dictionary key for the markers in each subplot.
measures: This bar usually represents the quantitative measure of performance, usually a list of two values [a, b] and are the blue bars in the foreground of each subplot by default.
ranges: This parameter is usually a 3-item list [bad, okay, good]. They correspond to the grey bars in the background of each chart.
subtitles: the column name or dictionary key for the subtitle of each subplot chart.
titles ((str)) – the column name or dictionary key for the main label of each subplot chart.
Example 1:
Python3
import plotly.figure_factory as ff data = [ {"label": "revenue", "sublabel": "us$, in thousands", "range": [150, 225, 300], "performance": [220,270], "point": [250]}, {"label": "Profit", "sublabel": "%", "range": [20, 25, 30], "performance": [21, 23], "point": [26]}, {"label": "Order Size", "sublabel":"US$, average", "range": [350, 500, 600], "performance": [100,320], "point": [550]}, {"label": "New Customers", "sublabel": "count", "range": [1400, 2000, 2500], "performance": [1000, 1650], "point": [2100]}, {"label": "Satisfaction", "sublabel": "out of 5", "range": [3.5, 4.25, 5], "performance": [3.2, 4.7], "point": [4.4]} ] fig = ff.create_bullet( data, titles='label', subtitles='sublabel', markers='point', measures='performance', ranges='range', orientation='h', title='my simple bullet chart') fig.show() |
Output:
Example 2: Using a Dataframe with colors
Python3
import plotly.figure_factory as ff import pandas as pd data = [ {"title": "Revenue", "subtitle": "US$, in thousands", "ranges": [150, 225, 300], "measures":[220, 270], "markers":[250]}, {"title": "Profit", "subtitle": "%", "ranges": [20, 25, 30], "measures":[21, 23], "markers":[26]}, {"title": "Order Size", "subtitle": "US$, average", "ranges": [350, 500, 600], "measures":[100, 320], "markers":[550]}, {"title": "New Customers", "subtitle": "count", "ranges": [1400, 2000, 2500], "measures":[1000, 1650], "markers":[2100]}, {"title": "Satisfaction", "subtitle": "out of 5", "ranges": [3.5, 4.25, 5], "measures":[3.2, 4.7], "markers":[4.4]} ] fig = ff.create_bullet( data, titles='title', markers='markers', measures='measures', orientation='v', measure_colors=['rgb(14, 52, 75)', 'rgb(31, 141, 127)'], scatter_options={'marker': {'symbol': 'circle'}}, width=700) fig.show() |
Output:




