在本系列关于基于 Python 的绘图库的文章中,我们将概念性地了解使用 pandas(非常流行的 Python 数据操作库)进行绘图。 Pandas 是 Python 中用于可扩展地转换数据的标准工具,并且也已成为从 CSV 和 Excel 格式导入和导出的流行方式。
最重要的是,它还包含一个非常好的绘图 API。 这非常方便——您已经将数据放入 pandas DataFrame 中,那么为什么不使用同一个库来绘制它呢?
在本系列中,我们将在每个库中制作相同的多条形图,以便我们可以比较它们的工作方式。 我们将使用的数据是 1966 年至 2020 年英国选举结果
 
数据自行绘制
在我们进一步深入之前,请注意您可能需要调整您的 Python 环境才能运行此代码,包括以下内容。
数据在线可用,可以使用 pandas 导入
import pandas as pd
df = pd.read_csv('https://anvil.works/blog/img/plotting-in-python/uk-election-results.csv') 
现在我们准备好了。 我们在本系列文章中看到了一些非常简单的 API,但 pandas 必须荣登榜首。
要绘制一个条形图,其中每个政党一组,x 轴上是 year,我只需要这样做
import matplotlib.pyplot as plt
   
ax = df.plot.bar(x='year')
    
plt.show()四行代码——绝对是我们在本系列中创建的最简洁的多条形图。
我正在以宽格式使用我的数据,这意味着每个政党一列
        year  conservative  labour  liberal  others
0       1966           253     364       12       1
1       1970           330     287        6       7
2   Feb 1974           297     301       14      18
..       ...           ...     ...      ...     ...
12      2015           330     232        8      80
13      2017           317     262       12      59
14      2019           365     202       11      72
这意味着 pandas 自动知道我希望如何对条形图进行分组,如果我希望以不同的方式对它们进行分组,pandas 可以轻松地重构我的 DataFrame。
与 Seaborn 一样,pandas 的绘图功能是 Matplotlib 之上的抽象,这就是为什么您调用 Matplotlib 的 plt.show() 函数来实际生成绘图。
这是它的外观
 
看起来很棒,特别是考虑到它有多么容易! 让我们对其进行样式设置,使其看起来像 Matplotlib 示例。
样式设置
我们可以通过访问底层的 Matplotlib 方法轻松调整样式。
首先,我们可以通过将 Matplotlib 颜色图传递到绘图函数中来为条形图着色
from matplotlib.colors import ListedColormap
cmap = ListedColormap(['#0343df', '#e50000', '#ffff14', '#929591'])
ax = df.plot.bar(x='year', colormap=cmap)我们可以使用绘图函数的返回值来设置轴标签和标题——它只是一个 Matplotlib Axis 对象。
ax.set_xlabel(None)
ax.set_ylabel('Seats')
ax.set_title('UK election results')这是现在的样子
 
这几乎与上面显示的 Matplotlib 版本相同,但代码只有 8 行而不是 16 行! 我内心的代码高尔夫球手非常高兴。
抽象必须是可逃逸的
与 Seaborn 一样,能够深入访问 Matplotlib API 进行详细调整真的很有帮助。 这是提供抽象逃生舱口使其既强大又简单的绝佳示例。
本文基于 Anvil 博客上的如何使用 Pandas 绘制图表,并经许可重复使用。
 
 
 
 
 
 
 
 
 

评论已关闭。