Matplotlib的设计理念是能够用轻松简单的方式生成强大的可视化效果,是Python学习过程中核心库之一。被用在python中绘制数组的2D图形库,可视化非常方便。
调用并简化写成plt
import matplotlib.pyplot as plt
举个栗子1:(从栗子1开始都是在不断的增加新的参数或其他内容)
import matplotlib.pyplot as plt
import numpy as np #上面两行调用两个包,并写成简写形式plt和np
x = np.linspace(-1,1,40) #利用numpy生成一组数据
y = 2*x + 1
plt.plot(x,y) #画图
plt.show() #显示上述所示的图,如果不用这个命令上述图是不会显示的
运行结果如图示:
栗子2:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2 #求x 的平方
plt.figure()
plt.plot(x,y1)
plt.figure()
plt.plot(x,y2)
plt.show()
运行结果如下:
栗子3:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2
plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4)) #可以在图上面看见写的是figure3,而且这次显示的两个图大小不一 样,因为我们进行了设置
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--') #我们对plot中一些参数做了调整,默认的color是蓝色,线宽是1,直线
plt.show()
栗子4:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2
plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--')
plt.xlim((-1,2)) #设置x轴的范围
plt.ylim((-1,3))
plt.xlabel('I am X')
plt.ylabel('I am Y')
plt.show()
栗子5: (我们可以注意到上面那个figure3的横坐标分别是-1,-0.5,0,0.5,1的间隔,其实这个也可以换,在栗子5中展示)
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2
plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--')
plt.xlim((-1,2))
plt.ylim((-1,3))
plt.xlabel('I am X')
plt.ylabel('I am Y')
new_ticks = np.linspace(-1,2,9) #设置新的坐标
print(new_ticks)
plt.xticks(new_ticks)
plt.show()
稍微对y轴的坐标也变动一下:
再来点花哨的:
再对y轴的 字体做一些改变:
栗子6:(终于对坐标轴动了手)
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-1,1,40)
y1 = 2*x + 1
y2 = x**2
plt.figure()
plt.plot(x,y1)
plt.figure(num=3,figsize=(6,4))
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--')
plt.xlim((-1,2))
plt.ylim((-1,3))
plt.xlabel('I am X')
plt.ylabel('I am Y')
new_ticks = np.linspace(-1,2,9)
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2,-1.8,-1,1.22,3],
[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$really\ good$'])
#$ 在正则表达式中,匹配一个字符串的末尾
#gca = 'get current axis'
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none') #通过这两句话,发现得到结果图上右边和上面没有黑边框
ax.xaxis.set_ticks_position('bottom') #接下来设置坐标轴位置
ax.yaxis.set_ticks_position('left')
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('data',0))
plt.show()
加上图例
legend()其实可以有参数
举个栗子
~
l1=plt.plot(x,y2,label='up')
l2=plt.plot(x,y1,color='red',linewidth=3.0,linestyle='--',label='down')
plt.legend(handles=[l1,l2],labels=['aaa','bbb'],loc='best')
~