python画图局部放大图代码
生活随笔
收集整理的這篇文章主要介紹了
python画图局部放大图代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
# 不同模型的ROC曲線
lable_names = ["邏輯回歸","SVM","神經網絡","隨機森林","決策樹"] # 模型名稱
colors = ["r","b","g","m","k",] # 不同曲線顏色
linestyles =["-", "--", "-.", ":", "-"] #不同曲線fig = plt.figure(figsize=(8,7),dpi=150)
for n in range(5):## 計算繪制ROC曲線的取值plt.plot(fpr[n], tpr[n],color=colors[n],linewidth = 2,linestyle = linestyles[n],label = f'AUC={auc[n]} '+lable_names[n])
plt.plot([0, 1], [0, 1], 'k--')
plt.xlabel("假正率"); plt.ylabel("真正率")
plt.xlim(0, 1); plt.ylim(0, 1)
plt.grid()
plt.legend()
plt.title("不同模型的ROC曲線")
## 放大的圖片
inset_ax = fig.add_axes([0.3, 0.45, 0.4, 0.4],facecolor="white")
for n in range(5):## 放大的圖inset_ax.plot(fpr[n], tpr[n],color=colors[n],linewidth = 2,linestyle = linestyles[n],label = f'AUC={auc[n]} '+lable_names[n])inset_ax.set_xlim([-0.1,1])inset_ax.set_ylim([0.7,1.01])inset_ax.grid()
plt.show()
# 殘差圖——檢驗自相關def e_picture_auto(self):#創建畫布fig = plt.figure(figsize=(8, 8))#使用axisartist.Subplot方法創建一個繪圖區對象axax = axisartist.Subplot(fig, 111) #將繪圖區對象添加到畫布中fig.add_axes(ax)#通過set_visible方法設置繪圖區所有坐標軸隱藏ax.axis[:].set_visible(False)#ax.new_floating_axis代表添加新的坐標軸ax.axis["x"] = ax.new_floating_axis(0,0)#給x坐標軸加上箭頭ax.axis["x"].set_axisline_style("->", size = 1.0)#添加y坐標軸,且加上箭頭ax.axis["y"] = ax.new_floating_axis(1,0)ax.axis["y"].set_axisline_style("-|>", size = 1.0)#設置x、y軸上刻度顯示方向ax.axis["x"].set_axis_direction("top")ax.axis["y"].set_axis_direction("right")plt.scatter(self.e.values[:-1],self.e.values[1:], marker='.')# 標注某個點plt.annotate("異常值", (-7,63), xycoords='data',xytext=(-20, 55),arrowprops=dict(arrowstyle='->'),fontsize=15) plt.annotate("異常值", (63,-8), xycoords='data',xytext=(45, -8),arrowprops=dict(arrowstyle='->'),fontsize=15)plt.annotate(r"$e_t$", (-3,67), xycoords='data',xytext=(-4,67),fontsize=15) # ,arrowprops=dict(arrowstyle='-') # y標簽plt.annotate(r"$e_{t-1}$", (67,5), xycoords='data',xytext=(67,-4),fontsize=15) # x標簽plt.annotate(r"$O$", (67,5), xycoords='data',xytext=(-3,2),fontsize=15) # 原坐標標簽# 局部放大圖inset_ax = fig.add_axes([0.45, 0.45, 0.4, 0.4],facecolor="white")## 放大的圖inset_ax.scatter(self.e.values[:-1],self.e.values[1:])inset_ax.set_xlim([-12,5])inset_ax.set_ylim([-12,5])inset_ax.annotate("", (-11,0), xycoords='data',arrowprops=dict(arrowstyle='<-'),xytext=(5,0),fontsize=12) # 添加原坐標標簽# inset_ax.axhline(y=0,c="black", lw=0.5) # 添加水平線inset_ax.annotate("", (0,-11), xycoords='data',arrowprops=dict(arrowstyle='<-'),xytext=(0,4),fontsize=12)# inset_ax.axvline(x=0,c="black", lw=0.5) # 添加縱軸線inset_ax.annotate(r"$O$", (-1,0.5), xycoords='data',xytext=(-1,0.5),fontsize=12) # 添加原坐標標簽inset_ax.spines['right'].set_visible(False)inset_ax.spines['top'].set_visible(False)inset_ax.text(-10,4, '局部放大圖', bbox=dict(facecolor='yellow', alpha=0.5), fontsize=15) # 添加文本
from mpl_toolkits.axes_grid1.inset_locator import mark_inset
fig, ax = plt.subplots(1, 1)
ax.boxplot(pht.平均小時人氣)
# plt.ylim(0, 100000)
inset_ax = fig.add_axes([1, 0.45, 0.3, 0.4],facecolor="white")
inset_ax.boxplot(pht.平均小時人氣)
inset_ax.set_ylim(0, 50000)
inset_ax.set_xlim(0.85,1.15)
inset_ax.set_title('局部放大圖')
mark_inset(ax, inset_ax, loc1=3, loc2=4, fc="none", ec='k', lw=1)
總結
以上是生活随笔為你收集整理的python画图局部放大图代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 手把手教你申请腾讯云免费SSL证书
- 下一篇: 批量新建文件夹