Python-matplotlib繪制帶箭頭x-y坐標軸圖形

在Python的數(shù)據(jù)可視化庫中,采用matplotlib繪制相關(guān)圖形時,若不加任何設(shè)定,一般的x-y坐標軸是不帶箭頭且是一個封閉的矩形。我們以Sigmoid函數(shù)的繪制,給大家展示一下。

import matplotlib.pyplot as plt  #導入matplotlib庫
import numpy as np  #導入numpy庫
#生成x步長為0.1的列表數(shù)據(jù)
x = np.arange(-15,15,0.1)
#生成sigmiod形式的y數(shù)據(jù)
y=1/(1+np.exp(-x))
#設(shè)置x、y坐標軸的范圍
plt.xlim(-12,12)
plt.ylim(-1, 1)
#繪制圖形
plt.plot(x,y, c='b')

得到的圖形為:
原始圖形.jpg

matplotlib的輔助工具,包含一系列對坐標軸設(shè)置的框架。其中的axisartist包就用來設(shè)置坐標軸的類型。

1.創(chuàng)建畫布并引入axisartist工具。

import mpl_toolkits.axisartist as axisartist
#創(chuàng)建畫布
fig = plt.figure(figsize=(8, 8))
#使用axisartist.Subplot方法創(chuàng)建一個繪圖區(qū)對象ax
ax = axisartist.Subplot(fig, 111)  
#將繪圖區(qū)對象添加到畫布中
fig.add_axes(ax)

2.繪制帶箭頭的x-y坐標軸

#通過set_visible方法設(shè)置繪圖區(qū)所有坐標軸隱藏
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)
#設(shè)置x、y軸上刻度顯示方向
ax.axis["x"].set_axis_direction("top")
ax.axis["y"].set_axis_direction("right")

我們先把原始的如上圖的所有坐標軸隱藏,即長方形的四個邊。
然后用ax.new_floating_axis在繪圖區(qū)添加坐標軸x、y,這里的ax.new_floating_axis(0,0),第一個0代表平行直線,第二個0代表該直線經(jīng)過0點。同樣,ax.axis["y"] = ax.new_floating_axis(1,0),則代表豎直曲線且經(jīng)過0點。
再次,x.axis["x"].set_axisline_style("->", size = 1.0)表示給x軸加上箭頭,"->"表示是空箭頭,size = 1.0表示箭頭大小。ax.axis["y"].set_axisline_style("-|>", size = 1.0)中"-|>"則是實心箭頭。
最后,設(shè)置x、y軸上刻度顯示方向,對于x軸是刻度標簽在上面還是下面,y軸則是刻度標簽在左邊還是右邊。

3.在帶箭頭的x-y坐標軸背景下,繪制函數(shù)圖像

#生成x步長為0.1的列表數(shù)據(jù)
x = np.arange(-15,15,0.1)
#生成sigmiod形式的y數(shù)據(jù)
y=1/(1+np.exp(-x))
#設(shè)置x、y坐標軸的范圍
plt.xlim(-12,12)
plt.ylim(-1, 1)
#繪制圖形
plt.plot(x,y, c='b')

將Sigmiod曲線添加到畫布中,得到結(jié)果:
帶箭頭坐標軸.jpg

tist坐標軸工具——將原始坐標軸均隱藏掉——添加新的基于原點的x與y軸——為新坐標軸加入箭頭,并設(shè)置刻度顯示方式——加入圖形。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容