matplotlib.pyplot基础(一)

来源:互联网 发布:一汽九院待遇知乎 编辑:程序博客网 时间:2024/06/07 14:21

(一)画一条直线

# 一.画一条直线import matplotlib.pyplot as plt# 一个数组或者列表,设置y值范围,x轴自动延伸plt.plot([0,1,2,3])# y轴标签plt.ylabel('yyyyyyyyy')plt.xlabel('xxxxxxxxx')# 指定x,y轴的区域[xmin,xmax,ymin,ymax]plt.axis([0, 6, 0, 20])plt.show()

这里写图片描述
给图再添加一些东西

import matplotlib.pyplot as plt# 可以设置x轴和y轴,经过点(1,1),(2,4),(3,9),(4,16)# 'yo'表示黄色,圆圈详情可查http://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.plotplt.plot([1, 2, 3, 4], [1, 4, 9, 16],'yo')# y轴标签plt.ylabel('yyyyyyyyy')plt.xlabel('xxxxxxxxx')# 指定x,y轴的区域[xmin,xmax,ymin,ymax]plt.axis([0, 6, 0, 20])# 还可以在图形的任意位置显示文件,在0.65, 1.20位置显示文字(1,1)或者数学表达式# plt.text(0.65, 1.20, r'$\mu=100,\ \sigma=15$')plt.text(0.65, 1.20, r'(1,1)')# 也可以这样添加注释plt.annotate('point offset from data',            xy=(2, 4), xycoords='data',            xytext=(-15, 25), textcoords='offset points',            arrowprops=dict(facecolor='black', shrink=0.05),            horizontalalignment='right', verticalalignment='bottom')plt.show()

这里写图片描述
改变线条属性

# 一.画一条直线import matplotlib.pyplot as plt# 返回一条线对象line, = plt.plot([0,1,2,3])line.set_antialiased(False)#再通过step函数将该直线变红plt.setp(line, color='r', linewidth=2.0)# y轴标签plt.ylabel('yyyyyyyyy')plt.xlabel('xxxxxxxxx')# 指定x,y轴的区域[xmin,xmax,ymin,ymax]plt.axis([0, 6, 0, 20])plt.show()

这里写图片描述
添加每条线的说明

# 添加每条线的说明import matplotlib.pyplot as pltimport numpy as npxy = np.arange(0., 5., 0.5)#也可以直接以这种形式绘制多种数据plt.plot(xy, xy, 'ro', xy, xy**2, 'yo', xy, xy**3, 'go')# 给每条线添加说明plt.legend(['Fit', 'Noisy', 'True'], loc='upper left')plt.style.use('seaborn-muted')print plt.style.availableplt.show()

这里写图片描述
(二)在一个图中绘制多条线

import matplotlib.pyplot as pltimport numpy as npxy = np.arange(0., 5., 0.5)#也可以直接以这种形式绘制多种数据plt.plot(xy, xy, 'ro', xy, xy**2, 'yo', xy, xy**3, 'go')plt.show()

这里写图片描述
(三)一个画板做出多个子图

# 一个画板做出多个子图import numpy as npimport matplotlib.pyplot as pltdef f(t):    return np.exp(t)t1 = np.arange(0.0, 5.0, 0.1)#创建一个图形编号,如果想两个图形分开画,则再弄一个plt.figure()即可,编号任意plt.figure(1)# 这里为subplot(211)与subplot(2, 1, 1)相同,表示位置,numrows,numcols,fignum,fignum = numrows * numcolsplt.subplot(311)plt.plot(t1, f(t1), 'bo')plt.subplot(312)plt.plot(t1, f(t1), 'g--')plt.show()

这里写图片描述
(四)y轴阶级显示

#y轴的阶级显示import numpy as npimport matplotlib.pyplot as plty = np.random.normal(loc=0.5, scale=0.4, size=1000)y = y[(y > 0) & (y < 1)]y.sort()x = np.arange(len(y))plt.figure(1)# 直线plt.subplot(221)plt.plot(x, y)plt.yscale('linear') #y值阶级显示plt.title('linear')plt.grid(True)# 对数plt.subplot(222)plt.plot(x, y)plt.yscale('log')#y值以log形式显示plt.title('log')plt.grid(True)# 对称的对数plt.subplot(223)plt.plot(x, y - y.mean())plt.yscale('symlog', linthreshy=0.05)plt.title('symlog')plt.grid(True, linestyle = "-.", color = "r", linewidth = "2")#这里可以设置图中的网格属性plt.show()

这里写图片描述