如何使用Python的Pandas库绘制折线图

Python021

如何使用Python的Pandas库绘制折线图,第1张

我们经常会使用Python的Pandas绘制各种数据图形,那么如何使用它绘制折线图呢?下面我给大家分享一下。

工具/材料

Pycharm

01

首先我们需要打开Excel软件准备需要的数据,这里多准备几列数据,一列就是一条折线,如下图所示

02

然后我们打开Pycharm软件,新建Python文件,导入Pandas库,接着将Excel中的数据读取进数据集缓存,如下图所示

03

接下来我们利用plot方法绘制折线图,如下图所示,这里只添加了一列标题

04

运行文件以后我们就可以看到折线图显示出来了,但是比较的简单,下面我们逐渐的丰富它

05

然后在plot方法中将excel里面的多列标题都添加进来,如下图所示

06

这次在运行文件的时候我们就可以看到折线图上有多条线了,如下图所示

07

接下来我们在为折线图设置标题,X,Y坐标轴的内容,如下图所示

08

然后通过plot方法下面的area方法对折线图的空白区域进行叠加填充,如下图所示

09

最后我们运行完善好后的文件,就可以看到如下图所示的折线图了,到此我们的折线图绘制也就完成了

在seaborn中,绘制折线图的函数有 lineplot 和 relplot 。

简单方式是传入pandas Series,其索引会成为x轴,值为y轴。

另一种方式是传入pandas dataFrame,通过设置 x , y 绘制。

当折线图中,x轴对应多个y轴数据时,seaborn会自动绘制置信区间。

图中的阴影表示置信区间,默认是 95% ,可以通过 ci 参数修改置信区间。

在一个图中绘制多条折线图。需要传入的数据为pandas dataFrame。

当传入长型数据时,除了需要设置 x , y 参数外,还需要设置 hue 或 size 或 style 参数。

seaborn可以直接对宽型数据绘制多折线图,其索引成为x轴,所有的列自动绘制成多折线。

设置 makers=True 参数可以显示散点。

分面折线图的绘制,需要用 relplot 函数。设置 kind="line" 表示绘制折线图,设置 col 或 row 控制分面行为。

一、环境准备

linux ubuntu 下需安装下面三个包:

Numpy, Scipy,Matplotlib

分别输入下面的代码进行安装:

[plain] view plain copy

pip install numpy

pip install scipy

sudo apt-get install python-matplotlib

测试是否安装成功

[html] view plain copy

python

>>> import pylab

如果没有报错则安装成功

二、开始画图

1. 画最简单的直线图

代码如下:

[python] view plain copy

import numpy as np

import matplotlib.pyplot as plt

x=[0,1]

y=[0,1]

plt.figure()

plt.plot(x,y)

plt.savefig("easyplot.jpg")

结果如下:

代码解释:

[python] view plain copy

#x轴,y轴

x=[0,1]

y=[0,1]

#创建绘图对象

plt.figure()

#在当前绘图对象进行绘图(两个参数是x,y轴的数据)

plt.plot(x,y)

#保存图象

plt.savefig("easyplot.jpg")

2. 给图加上标签与标题

上面的图没有相应的X,Y轴标签说明与标题

在上述代码基础上,可以加上这些内容

代码如下:

[python] view plain copy

import numpy as np

import matplotlib.pyplot as plt

x=[0,1]

y=[0,1]

plt.figure()

plt.plot(x,y)

plt.xlabel("time(s)")

plt.ylabel("value(m)")

plt.title("A simple plot")

结果如下:

代码解释:

[python] view plain copy

plt.xlabel("time(s)") #X轴标签

plt.ylabel("value(m)") #Y轴标签

plt.title("A simple plot") #标题

3. 画sinx曲线

代码如下:

[python] view plain copy

# -*- coding: utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

#设置x,y轴的数值(y=sinx)

x = np.linspace(0, 10, 1000)

y = np.sin(x)

#创建绘图对象,figsize参数可以指定绘图对象的宽度和高度,单位为英寸,一英寸=80px

plt.figure(figsize=(8,4))

#在当前绘图对象中画图(x轴,y轴,给所绘制的曲线的名字,画线颜色,画线宽度)

plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)

#X轴的文字

plt.xlabel("Time(s)")

#Y轴的文字

plt.ylabel("Volt")

#图表的标题

plt.title("PyPlot First Example")

#Y轴的范围

plt.ylim(-1.2,1.2)

#显示图示

plt.legend()

#显示图

plt.show()

#保存图

plt.savefig("sinx.jpg")

结果如下:

4. 画折线图

代码如下:

[python] view plain copy

# -*- coding: utf-8 -*-

import numpy as np

import matplotlib.pyplot as plt

#X轴,Y轴数据

x = [0,1,2,3,4,5,6]

y = [0.3,0.4,2,5,3,4.5,4]

plt.figure(figsize=(8,4)) #创建绘图对象

plt.plot(x,y,"b--",linewidth=1)   #在当前绘图对象绘图(X轴,Y轴,蓝色虚线,线宽度)

plt.xlabel("Time(s)") #X轴标签

plt.ylabel("Volt")  #Y轴标签

plt.title("Line plot") #图标题

plt.show()  #显示图

plt.savefig("line.jpg") #保存图

结果如下: