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: