一 figure使用
1 import numpy as np 2 import matplotlib.pyplot as plt 3 4 # 從-3到中取50個數 5 x = np.linspace(-3, 3, 50) 6 print(x) 7 y1 = 2*x+1 8 y2 = x**2 9 plt.figure() 10 plt.plot(x, y1) 11 plt.figure(num=3, figsize=(8, 5)) # figsize的設置長和寬 12 plt.plot(x, y2) 13 plt.plot(x, y1, color='red', linewidth=10.0, linestyle='--') # linewidth 設置線的寬度, linesyyle設置線的形狀 14 # savefig 保存圖片 15 plt.savefig("./image_dir/xianxing.png") 16 plt.show()

二: 設置坐標軸
# 從-3到中取50個數 x = np.linspace(-3, 3, 50) y1 = 2 * x + 1 y2 = x ** 2 plt.figure(num=3, figsize=(8, 5)) # figsize的設置長和寬 plt.plot(x, y2) plt.plot(x, y1, color='red', linewidth=10.0, linestyle='--') plt.xlim((-1, 2)) # 設置x軸的范圍 plt.ylim((-2, 3)) # 設置y軸的范圍 plt.xlabel('I am x') # 設置x軸的名稱 plt.ylabel('I am y') # 設置y軸額名稱 new_ticks = np.linspace(-1, 2, 5) print(new_ticks) plt.xticks(new_ticks) # 設置x軸的范圍的刻度值 # 設置y軸的范圍的刻度值 plt.yticks([-2, -1, 0, 1, 2, 3], [r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$']) plt.savefig('./image_dir/xlim.png') plt.show()

1 # 從-3到中取50個數 2 x = np.linspace(-3, 3, 50) 3 4 y1 = 2 * x + 1 5 y2 = x ** 2 6 plt.figure(num=3, figsize=(8, 5)) # figsize的設置長和寬 7 plt.plot(x, y2) 8 plt.plot(x, y1, color='red', linewidth=10.0, linestyle='--') 9 plt.xlim((-1, 2)) # 設置x軸的范圍 10 plt.ylim((-2, 3)) # 設置y軸的范圍 11 plt.xlabel('I am x') # 設置x軸的名稱 12 plt.ylabel('I am y') # 設置y軸額名稱 13 new_ticks = np.linspace(-1, 2, 5) 14 print(new_ticks) 15 plt.xticks(new_ticks) # 設置x軸的范圍的刻度值 16 # 設置y軸的范圍的刻度值 17 plt.yticks([-2, -1, 0, 1, 2, 3], 18 [r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$']) 19 # gca = 'get current axis' 20 ax = plt.gca() 21 # 將軸的右邊去掉 22 ax.spines['right'].set_color('none') 23 # 將軸的上邊去掉 24 ax.spines['top'].set_color('none') 25 # 將下軸設置為x 26 ax.xaxis.set_ticks_position('bottom') 27 # 將左軸設置為y 28 ax.yaxis.set_ticks_position('left') 29 # 設置下軸的位置 set_position(outward, axes) 30 ax.spines['bottom'].set_position(('data', 0)) 31 # 設置左軸位置 32 ax.spines['left'].set_position(('data', '0')) 33 plt.savefig('./image_dir/xlim2.png') 34 plt.show()

三: legend 圖例
1 # 從-3到中取50個數 2 x = np.linspace(-3, 3, 50) 3 4 y1 = 2 * x + 1 5 y2 = x ** 2 6 plt.figure(num=3, figsize=(8, 5)) # figsize的設置長和寬 7 8 plt.xlim((-1, 2)) # 設置x軸的范圍 9 plt.ylim((-2, 3)) # 設置y軸的范圍 10 plt.xlabel('I am x') # 設置x軸的名稱 11 plt.ylabel('I am y') # 設置y軸額名稱 12 new_ticks = np.linspace(-1, 2, 5) 13 print(new_ticks) 14 plt.xticks(new_ticks) # 設置x軸的范圍的刻度值 15 # 設置y軸的范圍的刻度值 16 plt.yticks([-2, -1, 0, 1, 2, 3], 17 [r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$']) 18 19 # plt.plot是有返回值的 20 l1, = plt.plot(x, y2, label='up') 21 l2, = plt.plot(x, y1, color='red', linewidth=10.0, linestyle='--', label='down') 22 # handles, labels是設置名稱, loc是設置位置 23 plt.legend(handles=[l1, l2], labels=['aaa', 'bbb'], loc='best') 24 plt.savefig('./image_dir/xlim3.png') 25 plt.show()

四: annotation標注
1 # 從-3到中取50個數 2 x = np.linspace(-3, 3, 50) 3 y1 = 2 * x + 1 4 # y2 = x ** 2 5 plt.figure(num=3, figsize=(8, 5)) # figsize的設置長和寬 6 # plt.plot(x, y2) 7 plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--') 8 # gca = 'get current axis' 9 ax = plt.gca() 10 # 將軸的右邊去掉 11 ax.spines['right'].set_color('none') 12 # 將軸的上邊去掉 13 ax.spines['top'].set_color('none') 14 # 將下軸設置為x 15 ax.xaxis.set_ticks_position('bottom') 16 # 將左軸設置為y 17 ax.yaxis.set_ticks_position('left') 18 # 設置下軸的位置 set_position(outward, axes) 19 ax.spines['bottom'].set_position(('data', 0)) 20 # 設置左軸位置 21 ax.spines['left'].set_position(('data', '0')) 22 x0 = 1 23 y0 = 2 * x0 + 1 24 plt.scatter(x0, y0, s=50, color='b') 25 plt.plot([x0, x0], [y0, 0], 'k--', lw=2.5) 26 27 # method1 xycoords依賴的數據集 28 plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30), textcoords='offset points', 29 fontsize=16, arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=.2')) 30 31 # method2 32 plt.text(-3.7, 3, r'$ this is the some test mu sigma_i alpha_t$', fontdict={'size':16, 'color':'r'}) 33 plt.savefig('./image_dir/xlim4.png') 34 plt.show()

五:tick能見度
1 # 從-3到中取50個數 2 x = np.linspace(-3, 3, 50) 3 y1 = 0.1*x 4 # y2 = x ** 2 5 plt.figure(num=3, figsize=(8, 5)) # figsize的設置長和寬 6 # plt.plot(x, y2) 7 plt.plot(x, y1, linewidth=10) 8 plt.ylim(-2, 2) 9 # gca = 'get current axis' 10 ax = plt.gca() 11 # 將軸的右邊去掉 12 ax.spines['right'].set_color('none') 13 # 將軸的上邊去掉 14 ax.spines['top'].set_color('none') 15 # 將下軸設置為x 16 ax.xaxis.set_ticks_position('bottom') 17 # 將左軸設置為y 18 ax.yaxis.set_ticks_position('left') 19 # 設置下軸的位置 set_position(outward, axes) 20 ax.spines['bottom'].set_position(('data', 0)) 21 # 設置左軸位置 22 ax.spines['left'].set_position(('data', '0')) 23 for label in ax.get_xticklabels() + ax.get_yticklabels(): 24 label.set_fontsize(12) 25 label.set_bbox(dict(facecolor='blue', edgecolor='None', alpha=0.9)) 26 plt.savefig('./image_dir/xlim5.png') 27 plt.show()

