基本画图操作:
- import matplotlib.pyplot as plt
- import numpy as np
- x = np.linspace(-3,3,50)
- y1 = 2*x+1
- y2 = x**2#x 的平方
- plt.figure()
- plt.plot(x,y1) #画线
- plt.scatter(x,y2) #画点
- plt.figure(num=333,figsize=(8,5))# 图 333
- plt.plot(x,y2)
- plt.show()
设置图例:
- import matplotlib.pyplot as plt
- import numpy as np
- x = np.linspace(-3,3,50)
- y1 = 2*x+1
- y2 = x**2#x 的平方
- plt.figure()
- plt.xlim((-1,2))
- plt.ylim((-2,3))
- plt.xlabel('I am x')
- plt.ylabel('I am y')
- new_ticks = np.linspace(-1,2,5)#5 为 5 个单位
- print(new_ticks)
- plt.xticks(new_ticks)
- # 用 r(正则表达) 和 $ 框起来可以转换为计算机可以读的字体
- #\ 加空格转义为空格,\ 加 alpha 能够输出 真正的 alpha
- plt.yticks([-2,-1.8,-1,1.22,3,],
- [r'$really\ bad$',r'$bad\ \alpha$','normal','good','really good'])
- l1,=plt.plot(x,y2,label='up')# 画线
- l2,=plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--',label='dowm')#'--'为虚线
- #loc 可以为 upper right 等等
- # 要传到 handles 要加, 用了 labels 后就不用 l1,l2 本身的 label
- plt.legend(handles=[l1,l2,],labels=['aaa','bbb'],loc='best')
- plt.show()
设置坐标轴位置:
- import matplotlib.pyplot as plt
- import numpy as np
- x = np.linspace(-3,3,50)
- y1 = 2*x+1
- y2 = x**2#x 的平方
- plt.figure()
- plt.plot(x,y2)
- plt.plot(x,y1,color='red',linewidth=1.0,linestyle='--')
- plt.xlim((-1,2))
- plt.ylim((-2,3))
- plt.xlabel('I am x')
- plt.ylabel('I am y')
- new_ticks = np.linspace(-1,2,5)#5 为 5 个单位
- print(new_ticks)
- plt.xticks(new_ticks)
- # 用 r(正则表达) 和 $ 框起来可以转换为计算机可以读的字体
- #\ 加空格转义为空格,\ 加 alpha 能够输出 真正的 alpha
- plt.yticks([-2,-1.8,-1,1.22,3,],
- [r'$really\ bad$',r'$bad\ \alpha$','normal','good','really good'])
- ax = plt.gca()#ax 为上图
- ax.spines['right'].set_color('none')# 删除右边缘黑框
- ax.spines['top'].set_color('none')# 删除上边缘黑框
- ax.xaxis.set_ticks_position('bottom')# 令 x 轴为底边缘
- ax.yaxis.set_ticks_position('left')# 令 y 轴为左边缘
- ax.spines['bottom'].set_position(('data',-1))# 将底边缘放到 y 轴数据 - 1 的位置
- ax.spines['left'].set_position(('data',0))# 将左边缘放到 y 轴数据 - 1 的位置
- plt.show()
来源: http://www.bubuko.com/infodetail-2759345.html