Matpotlib入门
一.基础用法
1.基本应用
使用import导入模块matplotlib.pyplot,并简写成plt 使用import导入模块numpy,并简写成np,使用np.linspace定义x:范围是(-1,1);个数是50. 仿真一维数据组(x ,y)表示曲线1.使用plt.figure定义一个图像窗口. 使用plt.plot画(x ,y)曲线. 使用plt.show显示图像。
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-1,1,50)
y=2*x+1
plt.figure()#定义一个图像窗口,后面定义要在窗口输入的值
plt.plot(x,y)#根据给定值画线
plt.show()#以图形的方式显示出来
2.figure图像
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.figure(num='test',figsize=(8,5))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
plt.show()
注:
- plt.figure(num='',figsize=(n1,n2)):定义一个图像窗口,num后面给定的值输入名称,figsize给定窗口大小。
- plt.plot():画连续图像,可以定义线段的宽度和形式,还有颜色
- plt.show():必须加这个函数才能输出图像。
3.设置坐标轴
(1)常规设置
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,50)
y1=2*x+1
y2=x**2
plt.figure(num='test',figsize=(8,5))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
plt.xlim((-1,2))#坐标轴范围
plt.ylim((-2,3))
new_tricks=np.linspace(-1,2,5)
print(new_tricks)
plt.xticks(new_tricks)
plt.yticks([-2,-1.8,-1,2,2,3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])#刻度,刻度名称
plt.xlabel(('i am x'))#坐标轴名称
plt.ylabel(('i am y'))
plt.show()
- plt.xlim((n1,n2)):给x轴图像限定范围在n1,n2;
- plt.xtrick([list]):用于给定x轴上具体的坐标;
- plt.xlabel('name'):给坐标轴命名
(2)调整坐标轴的位置
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2
#画图
plt.figure()
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
#设置坐标轴数字限度
plt.xlim((-1, 2))
plt.ylim((-2, 3))
# 设置坐标轴的新刻度
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
# 设置坐标轴刻度标签
plt.yticks([-2, -1.8, -1, 1.22, 3],
['$really\ bad$', '$bad$', '$normal$', '$good$', '$really\ good$'])
# gca用来获得现在的坐标轴信息
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#设置坐标轴刻度的位置
ax.xaxis.set_ticks_position('bottom')
# 还可以输入的参数: [ 'top' | 'bottom' | 'both' | 'default' | 'none' ]
ax.spines['bottom'].set_position(('data', 0))
# the 1st is in 'outward' | 'axes' | 'data'
# axes: percentage of y axis
# data: depend on y data
ax.yaxis.set_ticks_position('left')
# ACCEPTS: [ 'left' | 'right' | 'both' | 'default' | 'none' ]
ax.spines['left'].set_position(('data',0))
plt.show()
-
- plt.gca:获取当前坐标轴信息,后面所有操作都是基于此;
- ax.spine:设置坐标轴的边框,右侧边框--使用.set_color设置边框颜色:默认白色; 使用.spines设置边框:上边框--使用.set_color设置边框颜色:默认白色;
- ax.xaxis.set_tricks_position('top/bottom/both/default/none'):设置x坐标刻度数字或者名称的位置。
- .set_position:设置边框位置,比如x=0,y=0的位置,位置所有属性:outward,axes,data
4.Legend图例
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 50)
y1 = 2*x + 1
y2 = x**2
#legend用法1
plt.figure(num='1')
plt.xlim((-1, 2))
plt.ylim((-2, 3))
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],
['$really\ bad$', '$bad$', '$normal$', '$good$', '$really\ good$'])
plt.plot(x,y1,label='linear line')
plt.plot(x,y2,col