码迷,mamicode.com
首页 > 其他好文 > 详细

Annotation 标注

时间:2018-07-29 17:03:14      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:mat   基本   tick   接下来   obj   collect   tom   ott   tco   

1、画出基本图

当图线中某些特殊地方需要标注时,我们可以使用 annotation. matplotlib 中的 annotation 有两种方法, 一种是用 plt 里面的 annotate,一种是直接用 plt 里面的 text来写标注.

首先,我们在坐标轴中绘制一条直线.

>>> import matplotlib.pyplot as plt
>>> import numpy as np
>>> x = np.linspace(-3, 3, 50)
>>> y = 2*x + 1
>>> plt.figure(num=1, figsize=(8, 5),)
<Figure size 800x500 with 0 Axes>
>>> plt.plot(x, y,)
[<matplotlib.lines.Line2D object at 0x000001C38F2B4C88>]
>>> plt.show()

技术分享图片

2、移动坐标

然后我们挪动坐标轴的位置.

>>> ax = plt.gca()
>>> ax.spines[right].set_color(none)
>>> ax.spines[top].set_color(none)
>>> ax.spines[top].set_color(none)
>>> ax.xaxis.set_ticks_position(bottom)
>>> ax.spines[bottom].set_position((data, 0))
>>> ax.yaxis.set_ticks_position(left)
>>> ax.spines[left].set_position((data, 0))
>>> plt.show()

技术分享图片

然后标注出点(x0, y0)的位置信息. 用plt.plot([x0, x0,], [0, y0,], ‘k--‘, linewidth=2.5) 画出一条垂直于x轴的虚线.

>>> x0 = 1
>>> y0 = 2*x0 + 1
>>> plt.plot([x0, x0,], [0, y0,], k--, linewidth=2.5)
[<matplotlib.lines.Line2D object at 0x000001C38E026748>]
>>> # set dot styles
... plt.scatter([x0, ], [y0, ], s=50, color=b)
<matplotlib.collections.PathCollection object at 0x000001C38E018320>
>>> plt.show()

技术分享图片

3、添加注释 annotate

接下来我们就对(x0, y0)这个点进行标注.

plt.annotate(r$2x+1=%s$ % y0, xy=(x0, y0), xycoords=data, xytext=(+30, -30),
             textcoords=offset points, fontsize=16,
             arrowprops=dict(arrowstyle=->, connectionstyle="arc3,rad=.2"))
             
plt.show()

其中参数xycoords=‘data‘ 是说基于数据的值来选位置, xytext=(+30, -30) 和 textcoords=‘offset points‘ 对于标注位置的描述 和 xy 偏差值, arrowprops是对图中箭头类型的一些设置.

技术分享图片

4、添加注释text

plt.text(-3.7, 3, r$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$,
         fontdict={size: 16, color: r})

其中-3.7, 3,是选取text的位置, 空格需要用到转字符,fontdict设置文本字体.

 技术分享图片

 

Annotation 标注

标签:mat   基本   tick   接下来   obj   collect   tom   ott   tco   

原文地址:https://www.cnblogs.com/anhoo/p/9385813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!