Python-matplotlib绘制带箭头x-y坐标轴图形

Python020

Python-matplotlib绘制带箭头x-y坐标轴图形,第1张

在Python的数据可视化库中,采用matplotlib绘制相关图形时,若不加任何设定,一般的x-y坐标轴是不带箭头且是一个封闭的矩形。我们以Sigmoid函数的绘制,给大家展示一下。

matplotlib的辅助工具,包含一系列对坐标轴设置的框架。其中的axisartist包就用来设置坐标轴的类型。

1.创建画布并引入axisartist工具。

2.绘制带箭头的x-y坐标轴

我们先把原始的如上图的所有坐标轴隐藏,即长方形的四个边。

然后用ax.new_floating_axis在绘图区添加坐标轴x、y,这里的ax.new_floating_axis(0,0),第一个0代表平行直线,第二个0代表该直线经过0点。同样,ax.axis["y"] = ax.new_floating_axis(1,0),则代表竖直曲线且经过0点。

再次,x.axis["x"].set_axisline_style("->", size = 1.0)表示给x轴加上箭头,"->"表示是空箭头,size = 1.0表示箭头大小。ax.axis["y"].set_axisline_style("-|>", size = 1.0)中"-|>"则是实心箭头。

最后,设置x、y轴上刻度显示方向,对于x轴是刻度标签在上面还是下面,y轴则是刻度标签在左边还是右边。

3.在带箭头的x-y坐标轴背景下,绘制函数图像

tist坐标轴工具——将原始坐标轴均隐藏掉——添加新的基于原点的x与y轴——为新坐标轴加入箭头,并设置刻度显示方式——加入图形。

你用的graphics模块?这不是内置的,虽然它是调用内置的Tkinter画图。

option可以是"first","last","both"或"none"。见graphics.py:

def setArrow(self, option):

if not option in ["first","last","both","none"]:

raise GraphicsError(BAD_OPTION)

self._reconfig("arrow", option)

细节要查Tk文档:

6.6. The canvas line object

In general, a line can consist of any number of segments connected end to end, and each segment can be straight or curved. To create a canvas line object on a canvas C, use:

id = C.create_line ( x0, y0, x1, y1, ..., xn, yn, option, ... )

The line goes through the series of points

(x0,

y0),

(x1,

y1),

(xn,

yn).

Options include:

arrow The default is for the line to have no arrowheads. Use

arrow=FIRST to get an arrowhead at the(x0,y0)end of the line. Use

arrow=LAST to get an arrowhead at the far end. Use

arrow=BOTH for arrowheads at both ends.