您的位置:首页 > 编程语言 > Python开发

python画图——matplotlib.plot 学习

2017-02-17 17:34 351 查看
之前把《利用Python进行数据分析》撸了一遍,其中就有一章专门说数据可视化的,结果这两天做数据挖掘算法实现想用Python画个图,发现脑袋空空如也。所以今天又专门找个时间把Python数据可视化再撸一遍,不过这次就要做个笔记了,下次老子看笔记,不啃书了!

一.模块简介

包:matplotlib,这是一个用于创建出版质量的桌面绘图包,所以你看这个图很有看老板数学教科书中的插图的意味,如果要使这个包作用完全,最好安装一个GUI工具包:ipython。

安装方法就跟一般的模块安装方法相同,使用的方法就是把

>>>Python


改为

>>>ipython


还有一个轻量服务器进程,启动方式是:

>>>ipython notebook


或者是

jupyter notebook


这时候就会弹出个网页,接下来你就能在网页上进行交互操作了。这个进程的有点就在于你能把你的操作存档,下次可以继续进行未完成的工作,就像是虚拟机一样,存档后下次开机就会直接读取上次的信息,你就可以接着上次的页面继续工作了(还有一个作用就是能把你的存档文件发给你的同事,这样他就能直接看到你的整个操作过程)

模块:plot,这个就是我们一直用的画图模块,我们用的figure对象和subplot方法都在这里面

二.创建图表

创建图表的第一步是创建一个画布,然后再建图表。一个画布可以存在多个图表。

创建图表的方法有三种:

首先引入包

import matplotlib.pyplot as plt
form numpy.random import randn


直接plot方法 这个plot就是这个plt下面的一个方法,它可以直接接受一组x和y的点画图,就像你在学函数一样,有了x有了y直接就可以整个函数图像出来

plt.plot(x,y)
plt.show()


将plt当做一个画布对象,直接画图;

会有一个figure出现,如果没有结束这个figure,是不能进行下一个动作;

可以将多个动作画在同一个画布上;

建立对象figure

fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(x,y)||ax.hist(x)#(画一个直方图)
fig.show()


创建一个新的fig对象,当做一个画布;

add_subplot添加子图,再进一步设置图画;

可以一个画布上出现多个图

直接用subplot方法

figs,axes=plt.subplots(1,1,**kwargs)
axes[i].plot(x,y)||axes[i].hist(x)
figs.show()


利用subplot方法同事创建一个figure新对象和axes数组 对数组的元素操作即对每幅图操作 可以很方便的操作每幅图(推荐)

对比上面三种方法可以知道:第一种方法就是画图的方法;第二种方法是先建立figure对象,再利用add_subplot的方法建立几个子图再用第一种方法画图;第三种方法最为直接和方便,直接里用plt.subplots的方法建立子图并返回figure对象和子图的数组。

如果是画一个图表练习练习的话那就用第一种方法,简单直接粗暴,如果是要一次建好几个图表那就用第三种方法,还可以索引出你想用的那个图表

三.给图表添砖加瓦

建立了图表,接下来就是给图表加注释、说明,调整横轴大小区间等主要是通过set_*这个方法来实现的

设立坐标轴

set_xlim 设立坐标轴的最大值和最小值

set_xticks 设立坐标轴上的间隔区间

set_xticklabels 设立坐标轴上的间隔名称

set_xlabel 设立坐标轴的名称

设立注释

text 设立文本注释(可以将注释内容定位在(x,y)坐标上)

arrow 设立箭头注释

annotate 设立注释内容

设立图例

在书中说有两种设立图例的方法,但我就实验出来一种

fig=plt.figure()
ax=fig.add_subplot(1,1,1)
ax.plot(randn(1000).cumsum(),'k--',label='one')
ax.plot(randn(1000).cumsum(),'k.',label='two')
ax.plot(randn(1000).cumsum(),'k',label='three')


这样就把图和图例都弄出来了,但是图例还没有显示出来,接下来就是显示图例

ax.legend(loc='best')


loc=’best’可以将图例放在最合适的位置,你也可以设置为‘right’‘center’等

这是在学习的时候使用的图,仅供参考



四.后续

这个才是刚刚开始,能画出图,但画出自己想要的图还有点困难,如果用pandans中的DataFrame和Series数据来画图会有更好的方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 数据可视化