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() #显示图像