Python中的plotly.figure_factory.create_bullet()
Python的 Plotly 库对于数据可视化和简单轻松地理解数据非常有用。
plotly.figure_factory.create_bullet
此方法用于创建子弹图。此函数可以同时采用数据帧或一系列字典。
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.
示例 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()
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()
输出:
示例 2:使用带有颜色的数据框
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()
输出: