文章插图
比较七个在 Python 中绘图的库和 API , 看看哪个最能满足你的需求 。
- 来源:https://linux.cn/article-12327-1.html
- 作者:Shaun Taylor-morgan
- 译者:Xingyu.Wang
比较七个在 Python 中绘图的库和 API , 看看哪个最能满足你的需求 。“如何在 Python 中绘图?”曾经这个问题有一个简单的答案:Matplotlib 是唯一的办法 。如今 , Python 作为数据科学的语言 , 有着更多的选择 。你应该用什么呢?
本指南将帮助你决定 。
它将向你展示如何使用四个最流行的 Python 绘图库:Matplotlib、Seaborn、Plotly 和 Bokeh , 再加上两个值得考虑的优秀的后起之秀:Altair , 拥有丰富的 API;Pygal , 拥有漂亮的 SVG 输出 。我还会看看 Pandas 提供的非常方便的绘图 API 。
对于每一个库 , 我都包含了源代码片段 , 以及一个使用 Anvil 的完整的基于 Web 的例子 。Anvil 是我们的平台 , 除了 Python 之外 , 什么都不用做就可以构建网络应用 。让我们一起来看看 。
示例绘图每个库都采取了稍微不同的方法来绘制数据 。为了比较它们 , 我将用每个库绘制同样的图 , 并给你展示源代码 。对于示例数据 , 我选择了这张 1966 年以来英国大选结果的分组柱状图 。
文章插图
Bar chart of British election data
我从维基百科上整理了 英国选举史的数据集 :从 1966 年到 2019 年 , 保守党、工党和自由党(广义)在每次选举中赢得的英国议会席位数 , 加上“其他”赢得的席位数 。你可以 以 CSV 文件格式下载它。
MatplotlibMatplotlib 是最古老的 Python 绘图库 , 现在仍然是最流行的 。它创建于 2003 年 , 是 SciPy Stack 的一部分 , SciPy Stack 是一个类似于 Matlab 的开源科学计算库 。
Matplotlib 为你提供了对绘制的精确控制 。例如 , 你可以在你的条形图中定义每个条形图的单独的 X 位置 。下面是绘制这个图表的代码(你可以在 这里 运行):
import matplotlib.pyplot as plt import numpy as np from votes import wide as df # Initialise a figure. subplots() with no args gives one plot. fig, ax = plt.subplots() # A little data preparation years = df['year'] x = np.arange(len(years)) # Plot each bar plot. Note: manually calculating the 'dodges' of the bars ax.bar(x - 3*width/2, df['conservative'], width, label='Conservative', color='#0343df') ax.bar(x - width/2, df['labour'], width, label='Labour', color='#e50000') ax.bar(x + width/2, df['liberal'], width, label='Liberal', color='#ffff14') ax.bar(x + 3*width/2, df['others'], width, label='Others', color='#929591') # Customise some display properties ax.set_ylabel('Seats') ax.set_title('UK election results') ax.set_xticks(x) # This ensures we have one tick per year, otherwise we get fewer ax.set_xticklabels(years.astype(str).values, rotation='vertical') ax.legend() # Ask Matplotlib to show the plot plt.show()
这是用 Matplotlib 绘制的选举结果:文章插图
Matplotlib plot of British election data
SeabornSeaborn 是 Matplotlib 之上的一个抽象层;它提供了一个非常整洁的界面 , 让你可以非常容易地制作出各种类型的有用绘图 。
不过 , 它并没有在能力上有所妥协!Seaborn 提供了访问底层 Matplotlib 对象的 逃生舱口 , 所以你仍然可以进行完全控制 。
Seaborn 的代码比原始的 Matplotlib 更简单(可在 此处 运行):
import seaborn as sns from votes import long as df # Some boilerplate to initialise things sns.set() plt.figure() # This is where the actual plot gets made ax = sns.barplot(data=https://www.isolves.com/it/cxkf/yy/Python/2020-07-09/df, x="year", y="seats", hue="party", palette=['blue', 'red', 'yellow', 'grey'], saturation=0.6) # Customise some display properties ax.set_title('UK election results') ax.grid(color='#cccccc') ax.set_ylabel('Seats') ax.set_xlabel(None) ax.set_xticklabels(df["year"].unique().astype(str), rotation='vertical') # Ask Matplotlib to show it plt.show()
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 如何在Chrome,Edge,Safari和Firefox中更改用户代理
- 开源一款超实用的 Dubbo 测试工具,已用半年,感觉很有feel
- 如何监视Python程序的内存使用情况
- 超级店长怎么绑定多个店铺 淘宝店铺超级店长有什么用
- 冬天喝茶用什么杯子好,瘦腿喝什么茶
- 杜仲茶的制作方法,饮用杜仲茶的三大注意事项
- 茶文化十二种茶席用具,不可比拟的茶席之美
- 失眠吃什么好 巧用四款药膳调理失眠
- 叶黄素对眼睛有什么好处和作用?
- 淘宝轻店怎么开通 淘宝轻应用是什么