相信大多数小伙伴在使用可视化工具时,经常会对使用哪个可视化工具感到困惑? 本文将会为您分解了每个库的优缺点。
动机
如果您刚开始使用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 dp.Blob.get(name='github_data', owner='khuyentran1401').download_df()
如果要使用Blob,请记住预先使用令牌登录Datapane。 此过程应少于1分钟
Matplotlib
Matplotlib可能是最常见的用于可视化数据的Python库。 每个对数据科学感兴趣的人都可能至少使用过Matplotlib。
优点
1.容易看到数据的属性
分析数据时,快速查看分布可能是理想的。
例如,如果我想快速了解关注者最多的前100个用户的分布,通常使用Matplotlib就足够了。
import matplotlib.pyplot as plt top_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轴