我们经常会使用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") #保存图
结果如下: