还在用OriginLab绘图?你已经Out啦。现在可以用Python会出超级好看的数据图,开源免费还不输Origin。
基础环境
使用python绘制数据图需要几个python包:
- matplotlib,用来绘图
- numpy,用来进行矩阵运算
- xlrd,用来从excel读取数据
这几个包都是支持python2和python3的,不过新版的matplotlib貌似已经不再支持python2了,所以推荐全部使用python3环境。安装这几个包很简单,使用pip3就行:
1 | sudo pip3 install matplotlib |
推荐使用spyder集成开发环境来工作,这可比简单的笔记本写python好多了。Spyder的安装见另一个文章。
从Excel读取数据
看代码:
1 | import numpy as np |
绘图
绘图主要使用matplotlib的功能,由于我们已经将matplotlib作为plt导入,所以:
1 | line1,=plt.plot(x,y1,linestyle="--",color="red",marker="o") |
注意这里line1和line2分别是对应两条曲线的变量名,注意逗号。plot中的前两个变量是x和y。
linestyle指的是线型,常用的线性有四种:
符号 | 线型 |
---|---|
‘-‘ | 实线 |
‘–’ | 虚线 |
‘-.’ | 点划线 |
‘:’ | 点线 |
color的颜色则比较多,具体可以看这张图:
marker指的数据点的形式,我摘录了部分:
符号 | 标记 | 符号 | 标记 | 符号 | 标记 |
---|---|---|---|---|---|
‘.’ | point marker | ‘,’ | pixel marker | ‘o’ | circle marker |
‘v’ | triangle_down marker | ‘^’ | triangle_up marker | ‘<’ | triangle_left marker |
‘>’ | triangle_right marker | ‘1’ | tri_down marker | ‘2’ | tri_up marker |
‘3’ | tri_left marker | ‘4’ | tri_right marker | ‘s’ | square marker |
‘p’ | pentagon marker | ‘*’ | star marker | ‘h’ | hexagon1 marker |
‘H’ | hexagon2 marker | ‘+’ | plus marker | ‘x’ | x marker |
‘D’ | diamond marker | ‘d’ | thin_diamond marker | ‘_’ | hline marker |
设置格式
1 | plt.xlim(0,20) |
- xlim和ylim设置x和y的绘图范围
- xlabel和ylabel是x和y轴的名字
- plt.rcParams[‘xtick.direction’]用来设置坐标轴上刻度线的方向,in指的是刻度线在坐标轴内部,还可以设置为out。
- figure.dpi用来设置图像dpi,默认比较低,这里建议用300。
图例
1 | plt.legend([line1,line2],['First','Second'],loc = 'upper left') |
内容大家对照之前的代码和下面的图就能猜到了,值得一说的是loc,可以用upper,down,center,right和left来控制位置,或者直接用best让python自己选择最佳位置。
放一个刚刚画好的图:
这张图对应的代码如下:
1 | #!/usr/bin/env python3 |