社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

用 Pandas 在 Python 中绘制数据

Python开发者 • 3 年前 • 498 次点击  

(给Python开发者加星标,提升Python技能

来源:linux中国

https://linux.cn/article-12333-1.html

Pandas 是一个非常流行的 Python 数据操作库。学习怎样使用它的 API 绘制数据。

在有关基于 Python 的绘图库的系列文章中,我们将对使用 Pandas 这个非常流行的 Python 数据操作库进行绘图进行概念性的研究。Pandas 是 Python 中的标准工具,用于对进行数据可扩展的转换,它也已成为从 CSV 和 Excel 格式导入和导出数据的流行方法。

除此之外,它还包含一个非常好的绘图 API。这非常方便,你已将数据存储在 Pandas DataFrame 中,那么为什么不使用相同的库进行绘制呢?

在本系列中,我们将在每个库中制作相同的多条形柱状图,以便我们可以比较它们的工作方式。我们使用的数据是 1966 年至 2020 年的英国大选结果: 

 

Matplotlib UK election results

自行绘制的数据

在继续之前,请注意你可能需要调整 Python 环境来运行此代码,包括:

  • 运行最新版本的 Python(用于 LinuxMac 和 Windows 的说明)

  • 确认你运行的是与这些库兼容的 Python 版本

数据可在线获得,并可使用 Pandas 导入: 

import pandas as pddf = pd.read_csv('https://anvil.works/blog/img/plotting-in-python/uk-election-results.csv')


在我们已经准备好了。在本系列文章中,我们已经看到了一些令人印象深刻的简单 API,但是 Pandas 一定能夺冠。

要在 x 轴上绘制按年份和每个党派分组的柱状图,我只需要这样做:

import matplotlib.pyplot as pltax = df.plot.bar(x='year')plt.show()


只有四行,这绝对是我们在本系列中创建的最棒的多条形柱状图。

我以宽格式使用数据,这意味着每个党派都有一列:

        year  conservative  labour  liberal  others0       1966           253     364       12       11       1970           330     287        6       72   Feb 1974           297     301       14      18..       ...           ...     ...      ...     ...12      2015           330     232        8      8013      2017           317     262       12      59


    
14      2019           365     202       11      72

这意味着 Pandas 会自动知道我希望如何分组,如果我希望进行不同的分组,Pandas 可以很容易地重组 DataFrame

与 Seaborn 一样,Pandas 的绘图功能是 Matplotlib 之上的抽象,这就是为什么要调用 Matplotlib 的 plt.show() 函数来实际生成绘图的原因。

看起来是这样的:

pandas unstyled data plot

看起来很棒,特别是它又这么简单!让我们对它进行样式设置,使其看起来像 Matplotlib 的例子。

调整样式

我们可以通过访问底层的 Matplotlib 方法轻松地调整样式。

首先,我们可以通过将 Matplotlib 颜色表传递到绘图函数来为柱状图着色:

from matplotlib.colors import ListedColormapcmap = 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')

这是现在的样子:

pandas styled plot

这与上面的 Matplotlib 版本几乎相同,但是只用了 8 行代码而不是 16 行!我内心的代码高手非常高兴。 

抽象必须是可转义的

与 Seaborn 一样,向下访问 Matplotlib API 进行细节调整的能力确实很有帮助。这是给出抽象紧急出口使其既强大又简单的一个很好的例子。


- EOF -




推荐阅读  点击标题可跳转

1、整理了 25 个 Pandas 实用技巧

2、国外大神制作的超棒 Pandas 可视化教程

3、别找了,这是 Pandas 最详细教程了


觉得本文对你有帮助?请分享给更多人

关注「Python开发者」加星标,提升Python技能

好文章,我在看❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/70709
 
498 次点击