import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.patches as mpatches from scipy.interpolate import spline x = np.arange(-5,11) y = x**3 + 2*(x**2) + x + 2 y2 = 2*(x**3) + 2*(x**2) + x + 1 plt.figure(figsize=(10,6),facecolor='#ffffcc',edgecolor='#ffffcc') #繪圖框的大小、顏色(放最前) plt.subplot(111, facecolor='#e6e6e6')#繪圖區,背景色(放在figure之后,繪圖函數之前) #繪圖 plt.plot(x, y, color='red', linewidth=1, linestyle='--') #繪折現圖 doc = plt.scatter(x, y2, color='green',label="繪點標簽") #繪點圖 #繪平滑曲線,將x軸上的點划分更多段來繪圖 x_smooth = np.linspace(x.min(), x.max(), x.max()*1000) y_smooth = spline(x, y2, x_smooth) plt.plot(x_smooth, y_smooth, color='blue', linewidth=1,label="平滑線標簽") #其他設置 plt.grid(axis='y',color='#8f8f8f',linestyle='--', linewidth=1 ) #顯示網格(如顯示y軸的) plt.xlim([-10,15]) #指X軸的顯示范圍 plt.ylim([-100,3000]) #指Y軸的顯示范圍 plt.title('標題', color='blue') plt.xlabel('x 軸標簽', color='blue') plt.ylabel('y 軸標簽', color='blue') plt.text((x.max()+x.min())/2,(y2.max()+y2.min())/2,'show text',ha='center')#圖像上顯示文本信息 for a,b in zip(x, y2): plt.text(a, b, str(b)) #plt.text 顯示y值 plt.legend(loc=2)#圖像標簽說明,設置label的都顯示(loc=2位於第二個角洛) #plt.legend(handles=[doc], loc=2) #只顯示一個圖的標簽 #plt.xticks((-4,-2,0,2,4,6,8,10),(-4,-2,0,2,4,6,8,10))#替換x軸刻度值 plt.yticks((0,500,1000,1500,2000),('0','0.5k','1k','1.5k','2k'))#替換y軸刻度值 plt.axis('tight') #tight:坐標軸數據顯示更明細(有不同選項) plt.show() #顯示圖像

