pandas画图-老鱼学pandas

Posted 曾想技术改变世界,不料世界改变了我们

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas画图-老鱼学pandas相关的知识,希望对你有一定的参考价值。

本节主要讲述如何把pandas中的数据用图表的方式显示在屏幕上,有点类似在excel中显示图表。

安装matplotlib

为了能够显示图表,首先需要安装matplotlib库,安装方法如下:

pip3 install matplotlib

显示图表

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 产生1000个随机数
data = pd.Series(np.random.rand(1000))
# 画图表
data.plot()
# 显示图表
plt.show()

在上面的代码中,我们首先创建1000个随机数序列点,然后对这1000个点进行画图表,最后调用plt.show()显示图表。

显示的结果为:

在matplotlib中,如果想要显示图表,需要使用plt.plot()函数,但在pandas中,我们只要对序列数据调用plot()函数就能显示其所拥有的数据,是不是很简单。

显示矩阵数据

显示矩阵中的数据,就会把每列当做一个数据序列进行显示,例如:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 产生1000个4列正态分布的随机数
data = pd.DataFrame(np.random.randn(1000, 4))
# 对其中的数据进行累加,目的是为了能够使例子中显示的曲线有上升波动效果
data = data.cumsum()
# 打印出前几行的数据,方便我们调试其中的数据值
print(data.head())
# 画图表
data.plot()
# 显示图表
plt.show()

其中显示的头几行数据值为:

          0         1         2         3
0  0.596323  0.195563  0.037300  0.900385
1  0.186813  2.217155  0.516096  0.623348
2  1.147338  2.362926  2.597531  0.960079
3  1.571033  2.910459  0.947950  0.609487
4  1.783988  3.702685 -0.358119  2.341726

显示的图表为:

还是挺漂亮的图表,有点像股市走势图。:)
只是其中的0,1,2,3这几个列名不大好看,我们可以修改产生数据集中的列名,这样,在显示图表时就能按照数据集中的列名进行显示了。
比如,我们想修改数据集中的列名显示为A、B、C、D:

data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))

这样显示为:

显示散点图

可以用scatter()函数来显示散点图,但其使用方式跟显示图表的有点不一样,主要是此函数是在plot属性中的方法,需要注意一下:

data.plot.scatter(x=\'A\', y=\'B\')

完整的代码为:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 产生1000个4列正态分布的随机数
data = pd.DataFrame(np.random.randn(1000, 4), columns=list("ABCD"))
# 打印出前几行的数据,方便我们调试其中的数据值
print(data.head())
# 显示散点图
data.plot.scatter(x=\'A\', y=\'B\')
# 显示图
plt.show()

显示图为:

在scatter函数中还可以添加额外的属性,比如可以通过color来指定颜色,通过label来指定标签,我们来看一下:

data.plot.scatter(x=\'A\', y=\'B\', color=\'DarkBlue\', label="Class 1")

显示的图为:

如果我们想要在一张图中再画一下另一个散点图,比如,在上面这个例子中,我们已经显示了横坐标是A纵坐标是B的散点图,现在我们还想把横坐标是A,纵坐标是C的数据也显示在其中,该怎么进行呢?

# 显示散点图
pic1 = data.plot.scatter(x=\'A\', y=\'B\', color=\'DarkBlue\', label="Class 1")
data.plot.scatter(x=\'A\', y=\'C\', color=\'DarkGreen\', label=\'Class2\', ax=pic1)
# 显示图
plt.show()

图片显示为:

更多图形

更多的图形还有:条形图, 直方图, 盒须图, 饼图等,相应的函数名有:bar, hist, box, kde, area, hexbin, pie等(前面不是一一对应的,有兴趣的读者可以自己去试试看。)

以上是关于pandas画图-老鱼学pandas的主要内容,如果未能解决你的问题,请参考以下文章

pandas基本介绍-老鱼学pandas

pandas设置值-老鱼学pandas

pandas合并merge-老鱼学pandas

pandas处理丢失数据-老鱼学pandas

matplotlib图例-老鱼学matplotlib

matplotlib柱状图-老鱼学matplotlib