在Python的數(shù)據(jù)可視化庫中亿虽,采用matplotlib繪制相關(guān)圖形時虚青,若不加任何設(shè)定它呀,一般的x-y坐標(biāo)軸是不帶箭頭且是一個封閉的矩形螺男。我們以Sigmoid函數(shù)的繪制棒厘,給大家展示一下。
import matplotlib.pyplot as plt #導(dǎo)入matplotlib庫
import numpy as np #導(dǎo)入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坐標(biāo)軸的范圍
plt.xlim(-12,12)
plt.ylim(-1, 1)
#繪制圖形
plt.plot(x,y, c='b')
得到的圖形為:matplotlib的輔助工具奢人,包含一系列對坐標(biāo)軸設(shè)置的框架。其中的axisartist包就用來設(shè)置坐標(biāo)軸的類型淆院。
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坐標(biāo)軸
#通過set_visible方法設(shè)置繪圖區(qū)所有坐標(biāo)軸隱藏
ax.axis[:].set_visible(False)
#ax.new_floating_axis代表添加新的坐標(biāo)軸
ax.axis["x"] = ax.new_floating_axis(0,0)
#給x坐標(biāo)軸加上箭頭
ax.axis["x"].set_axisline_style("->", size = 1.0)
#添加y坐標(biāo)軸,且加上箭頭
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")
我們先把原始的如上圖的所有坐標(biāo)軸隱藏支救,即長方形的四個邊抢野。
然后用ax.new_floating_axis在繪圖區(qū)添加坐標(biāo)軸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軸是刻度標(biāo)簽在上面還是下面楣铁,y軸則是刻度標(biāo)簽在左邊還是右邊玖雁。
3.在帶箭頭的x-y坐標(biāo)軸背景下,繪制函數(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坐標(biāo)軸的范圍
plt.xlim(-12,12)
plt.ylim(-1, 1)
#繪制圖形
plt.plot(x,y, c='b')
將Sigmiod曲線添加到畫布中赫冬,得到結(jié)果:tist坐標(biāo)軸工具——將原始坐標(biāo)軸均隱藏掉——添加新的基于原點的x與y軸——為新坐標(biāo)軸加入箭頭,并設(shè)置刻度顯示方式——加入圖形溃列。