例如,如果我们并排创建3个图形并想要观察它们之间的关系,则可以使用链接的笔刷
from bokeh.layouts import gridplot, rowfrom bokeh.models import ColumnDataSourcereset_output()output_notebook()source = ColumnDataSource(new_profile)TOOLS = "box_select,lasso_select,help"TOOLTIPS = [('user', '@user_name'),('followers', '@followers'),('following', '@following'),('forks', '@forks'),('contribution', '@contribution')]s1 = figure(tooltips=TOOLTIPS, plot_width=300, plot_height=300, title=None, tools=TOOLS)s1.circle(x='followers', y='following', source=source)s2 = figure(tooltips=TOOLTIPS, plot_width=300, plot_height=300, title=None, tools=TOOLS)s2.circle(x='followers', y='forks', source=source)s3 = figure(tooltips=TOOLTIPS, plot_width=300, plot_height=300, title=None, tools=TOOLS)s3.circle(x='followers', y='contribution', source=source)p = gridplot([[s1,s2,s3]])show(p)
文章插图
ColumnDataSource使数据可以在绘图之间共享 。因此,当我们将更改应用于一个图时,其他图也将相应地更改 。
缺点由于Bokeh是一个具有中级接口的库,因此与Matplotlib相比,它通常花费较少的代码,但产生与Seaborn,Altair或Plotly相同的图将花费更多的代码 。
例如,要使用泰坦尼克号数据创建相同的计数图,除了需要预先转换数据外,如果我们希望图形看起来更漂亮,我们还需要设置条形和颜色的宽度
from bokeh.transform import factor_cmapfrom bokeh.palettes import Spectral6p = figure(x_range=list(titanic_groupby['class']))p.vbar(x='class', top='survived', source = titanic_groupby,fill_color=factor_cmap('class', palette=Spectral6, factors=list(titanic_groupby['class'])))show(p)如果我们不为条形图添加宽度,则条形图将看起来像这样
文章插图
因此,我们需要手动调整尺寸以使图更好
from bokeh.transform import factor_cmapfrom bokeh.palettes import Spectral6p = figure(x_range=list(titanic_groupby['class']))p.vbar(x='class', top='survived', width=0.9, source = titanic_groupby,fill_color=factor_cmap('class', palette=Spectral6, factors=list(titanic_groupby['class'])))show(p)
文章插图
如果要用更少的代码创建漂亮的条形图,与其他库相比,Bokeh可能就是缺点
要点:Bokeh是唯一一个界面范围从低到高的库,这使得生成通用和精美的图形变得容易 。但是,这样做的代价是,Bokeh通常需要更多代码来创建质量与其他库相似的图 。
FoliumFolium使在交互式传单地图上的数据可视化变得容易 。该库具有来自OpenStreetMap,Mapbox和Stamen的许多内置磁贴集
优点1.轻松创建带有标记的地图
尽管Plotly,Altair和Bokeh也使我们能够创建地图,但Folium使用开放的街道地图,以最少的代码使您更接近google Map
还记得我们如何创建地图以使用Plotly可视化Github用户的位置吗? 我们可以用Folium使地图看起来更好
import folium# Load datalocation_df = dp.Blob.get(name='location_df', owner='khuyentran1401').download_df() # Save latitudes, longitudes, and locations' names in a listlats = location_df['latitude']lons = location_df['longitude']names = location_df['location']# Create a map with an initial locationm = folium.Map(location=[lats[0], lons[0]])for lat, lon, name in zip(lats, lons, names):# Create marker with other locationsfolium.Marker(location=[lat, lon],popup= name,icon=folium.Icon(color='green')).add_to(m)m
文章插图
最初的地点在纽约布鲁克林 。缩小以查看地图上的其他位置 。通过一些代码行,我们创建了一个真实的地图,显示了用户的位置 。
2.添加潜在的位置
如果我们想添加其他用户的潜在位置,Folium可以通过允许用户添加标记来简化操作
# Code to generate map here#....# Enable adding more locations in the mapm = m.add_child(folium.ClickForMarker(popup='Potential Location'))
文章插图
点击地图,查看您点击生成的新位置 。
3.插件
Folium有许多可与地图一起使用的插件,包括Altair的插件 。如果我们想查看全球Github用户总星数的热点图,以找出哪里有大量Github用户数最多,总星数很多的情况? Folium插件中的热图使您可以做到这一点 。
推荐阅读
- 2020年顶级深度学习框架:PyTorch与TensorFlow
- 一款MongoDB可视化数据管理工具,你值得拥有
- 使用Pytorch和Matplotlib可视化卷积神经网络的特征
- 拓扑图怎么画?一款好用可视化工具推荐
- 男人背着女人必聊6个话题
- 最有出息的6个星座有哪些?
- 6个MySQL GUI工具,数据库管理必备
- 破案了!AMD锐龙本不能用顶级独显的原因找到了
- 一款可视化 Web 管理后台生成工具
- Toyplot:一个简洁、可爱的Python的交互式数据可视化绘图库