用 Python 绘制数据的7种流行的方法 | Linux 中国
比较七个在 Python 中绘图的库和 API,看看哪个能满足你的需求。
- 来源:https://linux.cn/article-12327-1.html
- 作者:Shaun Taylor-morgan
- 译者:Xingyu.Wang
(本文字数:8312,阅读时长大约:9 分钟)
比较七个在 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 文件格式下载它。
Matplotlib
Matplotlib 是古老的 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()
相关文章