用python绘制熊猫图案
在关于基于Python的绘图库的系列文章中 ,我们将对使用pandas(一种非常流行的Python数据操作库)的绘图进行概念性的研究。 Pandas是Python中用于可缩放转换数据的标准工具,它也已成为从CSV和Excel格式导入和导出的流行方法。
最重要的是,它还包含一个非常好的绘图API。 这非常方便-您已经将数据存储在pandas DataFrame中,那么为什么不使用相同的库来绘制数据呢?
在本系列中,我们将在每个库中制作相同的多条图,以便我们可以比较它们的工作方式。 我们将使用的数据是1966年至2020年的英国大选结果:
![Matplotlib英国大选结果 Matplotlib UK election results](https://opensource.com/sites/default/files/uploads/matplotlib_2.png)
自行绘制的数据
在继续之前,请注意,您可能需要调整Python环境以使此代码运行,包括以下内容。
- 运行最新版本的Python( Linux , Mac和Windows的说明 )
- 验证您正在运行与这些库一起使用的Python版本
数据可在线获得,并可使用熊猫导入:
import pandas
as pd
df
= pd.
read_csv
(
'https://anvil.works/blog/img/plotting-in-python/uk-election-results.csv'
)
现在我们准备出发了。 在本系列文章中,我们已经看到了一些令人印象深刻的简单API,但是熊猫必须占据上风。
要在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()
函数来实际生成绘图的原因。
看起来是这样的:
![熊猫无样式数据图 pandas unstyled data plot](https://opensource.com/sites/default/files/uploads/pandas-unstyled.png)
看起来很棒,特别是考虑到它多么容易! 让我们对其进行样式设置,使其看起来像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'
)
这是现在的样子:
![熊猫情节 pandas styled plot](https://opensource.com/sites/default/files/uploads/pandas_3.png)
抽象必须是可转义的
与Seaborn一样,下拉并访问Matplotlib API进行详细调整的功能确实很有帮助。 这是给抽象逃生舱口使其强大而又简单的一个很好的例子。
本文基于如何在Anvil的博客上使用Pandas进行绘图,并经允许重复使用。
用python绘制熊猫图案