对使用哪个可视化工具感到困惑? 我为您分解了每个库的优缺点
文章插图
> Photo by oxana v on Unsplash
动机如果您刚开始使用Python可视化,可能会不知所措的库和示例数量众多:
· Matplotlib
· Seaborn
· Plotly
· Bokeh
· Altair
· Folium
如果您有一个等待可视化的DataFrame,应该选择哪一个? 在某些情况下,某些库可能比其他库更好 。本文将展示每种方法的优缺点 。到本文结尾,您应该能够区分每个库的不同功能,并可以更轻松地选择最佳库 。
我们将通过使用样本数据集并使用每个库对其进行研究,着重于一些特定的属性:
互动性
您是否希望可视化是交互式的?
一些库(例如Matplotlib)将可视化效果呈现为图像 。因此,它们非常适合于解释概念(在纸质,幻灯片或演示文稿中) 。
另一方面,像Altair,Bokeh和Plotly这样的库可让您创建交互式图形,以便用户可以深入并自己探索
语法和灵活性
每个库的语法有何不同? Matplotlib等较低级的库使您可以做想想得到的一切,但要付出更复杂的API的代价 。诸如Altair之类的某些库是非常声明性的,这使映射到您的数据更加容易 。
数据类型和可视化
您是在处理特殊的用例,例如地理图,具有大数据还是使用仅由特定库支持的图类型?
数据为了便于比较,我将使用本文从Github抓取的真实数据:
我爬取了超过1k的顶级机器学习Github配置文件,这就是我发现的从Github上的顶级机器学习资料中获取见解如果您想阅读本文,可以在此处下载数据
或从Datapane Blob获取直接数据 。
import datapane as dp如果要使用Blob,请记住预先使用令牌登录Datapane 。此过程应少于1分钟
dp.Blob.get(name='github_data', owner='khuyentran1401').download_df()
MatplotlibMatplotlib可能是最常见的用于可视化数据的Python库 。每个对数据科学感兴趣的人都可能至少使用过Matplotlib 。
优点1.容易看到数据的属性
分析数据时,快速查看分布可能是理想的 。
例如,如果我想快速了解关注者最多的前100个用户的分布,通常使用Matplotlib就足够了 。
import matplotlib.pyplot as plttop_followers = new_profile.sort_values(by='followers', axis=0, ascending=False)[:100]fig = plt.figure()plt.bar(top_followers.user_name,top_followers.followers)
即使Matplotlib的x轴看起来不太好,通过查看图表,我们也可以更好地理解数据的分布 。文章插图
2.可以画任何东西
Matplotlib具有多种用途,这意味着它可以绘制您可以想象的任何图形 。Matplotlib的网站上包含非常全面的文档和图库中的各种图形,这使您可以轻松找到任何您能想到的疯狂情节的教程 。
像这样的一些文字:
fig = plt.figure()plt.text(0.6, 0.7, "learning", size=40, rotation=20.,ha="center", va="center",bbox=dict(boxstyle="round",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))plt.text(0.55, 0.6, "machine", size=40, rotation=-25.,ha="right", va="top",bbox=dict(boxstyle="square",ec=(1., 0.5, 0.5),fc=(1., 0.8, 0.8),))plt.show()
文章插图
缺点Matplotlib可以绘制任何内容,但绘制非基本图或调整图的外观可能会很复杂 。
correlation = new_profile.corr()fig, ax = plt.subplots()im = plt.imshow(correlation)ax.set_xticklabels(correlation.columns)ax.set_yticklabels(correlation.columns)plt.setp(ax.get_xticklabels(), rotation=45, ha="right",rotation_mode="anchor")
文章插图
即使该图足以使分布可视化,但如果您想将数据表示给其他人,您仍需要固定x轴,y轴,这需要很多工作 。这是因为Matplotlib具有非常低级的接口 。
总结:Matplotlib可以绘制任何东西,但是复杂的绘图可能比其他库需要更多的代码
SeabornSeaborn是基于Matplotlib的Python数据可视化库 。它在库上提供了更高级别的包装器,使其更易于使用 。
优点
- 更少的代码
推荐阅读
- 2020年顶级深度学习框架:PyTorch与TensorFlow
- 一款MongoDB可视化数据管理工具,你值得拥有
- 使用Pytorch和Matplotlib可视化卷积神经网络的特征
- 拓扑图怎么画?一款好用可视化工具推荐
- 男人背着女人必聊6个话题
- 最有出息的6个星座有哪些?
- 6个MySQL GUI工具,数据库管理必备
- 破案了!AMD锐龙本不能用顶级独显的原因找到了
- 一款可视化 Web 管理后台生成工具
- Toyplot:一个简洁、可爱的Python的交互式数据可视化绘图库