python机器学习6-----图表函数库Matplotlib

1.Matplotlib介绍

        Matplotlib是Python著名的绘图函数库,它提供了一整套图表的API,可以将数据绘制成图表,而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。Matplotlib是很大的Python库,而pyplot是Matplotlib中的一个模块,本章的绘图几乎都是通过pyplot来完成的。

2.画线

import matplotlib.pyplot as plt 
plt.plot([1,2,3,4])
plt.ylabel('some numbers')
plt.show()

3.画点

 

import matplotlib.pyplot as plt

# 定义x和y的数据点
x = [1, 2, 3, 4]
y = [1, 4, 9, 16]

# 绘制图形,使用标准颜色名称 'green' 代替十六进制颜色代码
plt.plot(x, y, 'red')

# 设置x轴和y轴的范围
plt.xlim(0, 6)
plt.ylim(0, 20)

# 显示图形
plt.show()


import matplotlib.pyplot as plt
t=[1,2,3,4]
plt.plot(t,t,'r--')
plt.plot(t,[2,4,6,8],'bs')
plt.plot(t,[3,6,9,12],'g^')
plt.plot(t,[4,8,12,16],'k:')
plt.show()

 4.画面切割

        需要在相同窗口中显示不同的图表时就要使用subplot函数。

 subplot(nrows, ncols, index, facecolor)

参数:

· nrows:要绘制的图表,有上下几个图表。

· ncols:要绘制的图表,有左右几个图表。

· index:第几个。

· facecolor:颜色。

import matplotlib.pyplot as plt
t1=[1,2,3,4]
t2=[2,4,6,8]
plt.subplot(2,1,1,facecolor='y')
plt.plot(t1,t2,'ro')
plt.subplot(2,2,3,facecolor='k')
plt.plot(t2,t2,'g--')
plt.subplot(2,2,4)
plt.plot(t2,t2,'b|')
plt.show()

   程序中第4行subplot(2,1,1,facecolor='y')也可以写成subplot(211)。subplot(211)中数字211的意思是指2个上下和1个左右,使用2×1中的第1个局部,也就是上方全部的结果。

  程序中第7行plt.subplot(2,2,3,facecolor='k')也可以写成subplot(223)。subplot(223)中数字223的意思是指有2×2=4个局部,即2个上下和2个左右,所以画面有4个局部,然后是使用其中的第3个局部,依照上、下、左、右的顺序来计算,所以会呈现下方左边的结果。

5.显示图片

        Matplotlib图表中也能显示图片。

import matplotlib.pyplot as plt
import matplotlib.image as mpimg
t=[10,20,30,40]
plt.xlabel('xlabel')
plt.ylabel('ylabel')
plt.title('title')
img=mpimg.imread("C:\\Users\\nsy\\Pictures\\Screenshots\\7.15.png")
imgplot=plt.imshow(img)
plt.plot(t,t,'r--')
plt.show()

6.在窗口程序中显示图表

        通过实例说明如何结合Tkinter窗口和Matplotlib显示图表。为达到这个目的,需要使用控件matplotlib.backends.backend_tkagg来完成位置和窗口位置摆放的功能。

        

try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
win=tk.Tk()
fig=plt.Figure()
canvas=FigureCanvasTkAgg(fig,win)
canvas.get_tk_widget().pack()
ax=fig.add_subplot(111)
x=[5,6,7,8]
ax.plot(x)
tk.mainloop()

         GUI组件如何与Matplotlib图表交互?新增一个滑动组件Slider,只要用户移动滑动组件,即改变图表的数字,进而改变Matplotlib图表。

try:
    import Tkinter as tk
except ImportError:
    import tkinter as tk
import matplotlib.pyplot as plt
from matplotlib.widgets import Slider
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
win=tk.Tk()
fig=plt.Figure()
canvas=FigureCanvasTkAgg(fig,win)
canvas.get_tk_widget().pack()
ax=fig.add_subplot(111)
fig.subplots_adjust(bottom=0.25)
x=[5,6,7,8]
ax.plot(x,x)
ax.axis([0,10,0,10])
ax_time=fig.add_axes([0.12,0.1,0.78,0.03])
Slider1=Slider(ax_time,'Time',0,30,valinit=0)
def update(val):
    pos=Slider1.val
    ax.axis([pos,pos+10,0,10])
    fig.canvas.draw_idle()
Slider1.on_changed(update)
tk.mainloop()

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值