1 说明:
=====
1.1 Bqplot是用于Jupyter的交互式2D绘图库,其中绘图的每个属性都是一个交互式小部件,只需几行Python代码就可以创建丰富的可视化效果。
1.2 Bqplot构建在widgets框架之上,所以它利用widget基础提供第一个在Python和JAVAScript代码之间通信的绘图库。
1.3 Bqplot的可视化是基于D3.js和SVG的,支持快速交互和漂亮的动画。
2 准备:
=====
2.1 官网:
https://github.com/bqplot/bqplot
https://bqplot.readthedocs.io/en/latest/
https://pypi.org/project/bqplot/
2.2 英文视频介绍:
https://channel9.msdn.com/Events/PyData/Seattle2017/BRK10
压缩的视频预览gif版
2.3 安装:
pip install bqplot
#本机安装
sudo pip3.8 install bqplot
#推荐国内源安装
sudo pip3.8 install -i https://mirrors.aliyun.com/pypi/simple bqplot
2.4 环境:
华为笔记本电脑、深度deepin-linux操作系统、谷歌浏览器、python3.8和微软vscode编辑器。
===作图介绍===
注意:基于微软vscode编辑器,代码中的:#%%代表一个cell单元
3 折线图:
=======
3.1 代码:
#%%
import numpy as np
import bqplot.pyplot as plt
size = 100
scale = 100. #注意小数点
np.random.seed(0)
x_data = np.arange(size)
y_data = np.cumsum(np.random.randn(size) * scale)
fig = plt.figure(title='First Example')
#plt.plot(y_data) #默认折线图,line
#plt.plot(y_data,'g-.s') # color=green, line_style=dash_dotted, marker=square
plt.plot(y_data,'m:d') # color=magenta, line_style=None, marker=diamond
fig
#plt.show() #可有可无
# %%
3.2 操作及效果图:
4 散点图:
=======
4.1 代码:
#%%
import numpy as np
import bqplot.pyplot as plt
size = 100
scale = 100.
np.random.seed(0)
x_data = np.arange(size)
y_data = np.cumsum(np.random.randn(size) * scale)
fig = plt.figure()
axes_options = {'x': {'label': 'Date', 'tick_format': '%m/%d'},
'y': {'label': 'Price', 'tick_format': '0.0f'}}
plt.scatter(x_data, y_data, colors=['red'], stroke='black')
fig
4.2 图:
5 直方图:
=======
5.1 代码:
#%%
import numpy as np
import bqplot.pyplot as plt
size = 100
scale = 100.
np.random.seed(0)
x_data = np.arange(size)
y_data = np.cumsum(np.random.randn(size) * scale)
fig = plt.figure()
plt.hist(y_data, colors=['OrangeRed'])
fig
5.2 图:
6 饼图:
=====
6.1 两种饼图代码在一起:
#%%
#导出模块的cell单元代码块
from bqplot import pyplot as plt
from bqplot import topo_load
from bqplot.interacts import panzoom
import numpy as np
import pandas as pd
import datetime as dt
#%%
#普通饼图的代码块
np.random.seed(0)
size = 100
y_data_2 = np.cumsum(np.random.randn(size))
plt.figure()
d = abs(y_data_2[:5])
plt.pie(d,display_labels='outside', display_values=True,
values_format='.0%', labels=list('ABCDEFGHIJ'))
plt.show()
#%%
#空心环状饼图的代码块
data = np.random.rand(6)
fig = plt.figure(animation_duration=1000)
pie = plt.pie(data, radius=180, sort=False, display_labels='outside', display_values=True,
values_format='.0%', labels=list('ABCDEFGHIJ'))
#make pie a donut
with pie.hold_sync():
pie.radius = 180
pie.inner_radius = 120
fig
6.2 图:
普通饼图
环状饼图
7 柱状图:
=======
7.1 代码:
#%%
import numpy as np
import bqplot.pyplot as plt
size = 100
scale = 100.
np.random.seed(0)
x_data = np.arange(size)
y_data = np.cumsum(np.random.randn(size) * scale)
import string
fig = plt.figure(padding_x=0)
axes_options = {'x': {'label': 'X'}, 'y': {'label': 'Y'}}
plt.bar(x=list(string.ascii_uppercase), y=np.abs(y_data[:20]), axes_options=axes_options,colors=['MediumSeaGreen'])
fig
7.2 图:
8 箱式图:
=======
8.1 代码:
#%%
import numpy as np
import bqplot.pyplot as plt
plt.figure()
plt.boxplot(np.arange(10), np.random.randn(10, 100))
plt.show()
8.2 图:
9 ohlc图:
=======
9.1 代码:
#%%
import numpy as np
import bqplot.pyplot as plt
import datetime as dt
#dates代表x轴坐标为日期
dates = np.arange(dt.datetime(2014, 1, 2), dt.datetime(2014, 1, 30), dt.timedelta(days=1))
#y轴为价格数据
prices = np.array([[ 187.21 , 187.4 , 185.2 , 185.53 ],
[ 185.83 , 187.35 , 185.3 , 186.64 ],
[ 187.15 , 187.355 , 185.3 , 186. ],
[ 186.39 , 190.35 , 186.38 , 189.71 ],
[ 189.33 , 189.4175, 187.26 , 187.97 ],
[ 189.02 , 189.5 , 186.55 , 187.38 ],
[ 188.31 , 188.57 , 186.28 , 187.26 ],
[ 186.26 , 186.95 , 183.86 , 184.16 ],
[ 185.06 , 186.428 , 183.8818, 185.92 ],
[ 185.82 , 188.65 , 185.49 , 187.74 ],
[ 187.53 , 188.99 , 186.8 , 188.76 ],
[ 188.04 , 190.81 , 187.86 , 190.09 ],
[ 190.23 , 190.39 , 186.79 , 188.43 ],
[ 181.28 , 183.5 , 179.67 , 182.25 ],
[ 181.43 , 183.72 , 180.71 , 182.73 ],
[ 181.25 , 182.8141, 179.64 , 179.64 ],
[ 179.605 , 179.65 , 177.66 , 177.9 ],
[ 178.05 , 178.45 , 176.16 , 176.85 ],
[ 175.98 , 178.53 , 175.89 , 176.4 ],
[ 177.17 , 177.86 , 176.36 , 177.36 ]])
plt.figure()
plt.ohlc(dates, prices)
plt.show()
9.2 图:
10 高级图,不放代码了,欣赏一下。
===自己整理并分享出来===
喜欢的人,请点赞、关注、评论、转发和收藏。