matplotlib实战:读取excel表格并可视化
今天舍友画折线图时被origin的bug折磨,用excel表格的数据画的图出现了各种bug。此时python的强大作用就显示出来了,使用python中的matplotlib库即可完成折线图的绘制,十分方便。
所用模块
- pandas:用于读取和操作excel表格
- numpy:用于保存excel表格中的列数据
- matplotlib:用于画折线图
具体步骤
首先导入所用依赖
1 | import pandas as pd |
然后设置中文标签
1 | plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 |
使用pandas读取需要使用的excel表格,所用excel表格中的第一列为x轴电流的刻度,P列为需要绘制的数据,作为y轴。
1 | # 读取excel |
将x轴和y轴所需的数据读取出来,由于所需要绘制的电压在excel中是从第三列开始,Pi和Pi+1的间距为2,需要设置读取的起点和间距,见range(2, 19, 2)。
1 | x = np.array(data.x) # 使用data.列名 来获取data中的一列 |
数据读取后,使用matplotlib绘制折线图
1 | for i in range(2, 19, 2): |
此时发现excel表格中x轴刻度间距并不均匀,果沿 X 轴绘制的数值不是等距的,那么沿 X 轴的标签也将是不等距的,需要对其进行适当调整
方法为沿 X 轴等距的任意值列表来绘制数据,然后将实际值作为刻度分配到 X 轴上。将上面的部分代码修改为如下形式:
1 | x = np.array(data.x) |
修改后的效果如下,x轴的刻度更加均匀了
完整代码如下:
1 | import pandas as pd |
总结
matplotlib是一个强大的绘图库,配合pandas能够很好的完成数据的处理和分析。今天给舍友处理的图片得到了其的称赞,表示不会再用那个充满bug的软件来画图了!