matplotlib画图(一)——线条图

最近一直接触大数据相关项目,也了解了一些基本的数据分析方法。于是乎,想要对数据做一些处理,形成图标,让数据会说话。
R语言与python语言在作图上面都有一定优势,本人不会R语言,只能学习python相关的作图库了。根据网上的资料与反馈,matplotlib会是一个不错的选择。
从最基础的作图开始——线条图。
matplotlib库提供接口:

matplotlib.pyplot.plot(*args, **kwargs)

调用方法

plot([x], y, [fmt], data=None, **kwargs)
plot([x], y, [fmt], [x2], y2, [fmt2], ..., **kwargs)

其中中括号的参数是可以省略的。来一个最简单的调用方法吧:

>>> from matplotlib.pyplot import plot
>>> x1 = list(range(5))
>>> y1 = list(map(lambda x:x**2, x1))
>>> x1
[0, 1, 2, 3, 4]
>>> y1
[0, 1, 4, 9, 16]
>>> plot(x1,y1)
[<matplotlib.lines.Line2D object at 0x02A063F0>]

1
上述定义了一个指定x,y坐标的线条图。需注意的是,若指定了x,y的数据,那么x与y的数据个数要一一对应,否则会报错。根据文档提示,x轴数据其实是可以省略的,省略x轴数据后,会以默认坐标调整:

>>> plot(y1)
[<matplotlib.lines.Line2D object at 0x075D8450>]

画两个线条图

>>> x2 = list(range(5,10))
>>> y2 = list(map(lambda x: x**2, x2))
>>> x2
[5, 6, 7, 8, 9]
>>> y2
[25, 36, 49, 64, 81]
>>> plot(y1,y2)
[<matplotlib.lines.Line2D object at 0x079092D0>]

2
上述未指定坐标,下面来指定下坐标看看怎么样?

>>> plot(x1,y1,x2,y2)
[<matplotlib.lines.Line2D object at 0x089B30B0>, <matplotlib.lines.Line2D object at 0x089B3250>]

3
蓝色线条图为x1,y1的数据,橙色线条图为x2,y2的数据。
有些时候,我们会对线条图有一些更高的要求,这时候可以考虑下参数fmt
fmt其实是三个配置的参数:

fmt = '[color][marker][line]'

其中color有如下种类:
color
marker有如下种类:
marker
line有如下种类:
line
举个例子吧,我需要上述蓝色线条图改成红色实线图,坐标用“点”标记;橙色线条图改成绿色虚线图,坐标用“*”号标记;根据文档可得:

>>> plot(x1,y1,"r.-",x2,y2,"g*--")
[<matplotlib.lines.Line2D object at 0x01556050>, <matplotlib.lines.Line2D object at 0x01556110>]

4
fmt参数虽然是三个配置项,实际使用过程中,可配置任意一项或者多项也都是可以的,并不要求三个配置项都要完整。
相信fmt已经能满足大部分人的需求了,但或许高端人士不止于此,此接口还有很多属性参数:
properties
上图是最全面的线条图参数相关的设置,若使用上述关键字设置时,与fmt参数冲突时,以关键字设置为主:

>>> plot(x1,y1,"r.-",x2,y2,"g*--", marker="D")
[<matplotlib.lines.Line2D object at 0x0792F030>, <matplotlib.lines.Line2D object at 0x0792F890>]

5
本博文参考matlibplot 官方文档:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.plot.html#matplotlib.pyplot.plot

阅读更多
换一批

没有更多推荐了,返回首页