matplotlib text可以对图形起到解释说明的作用,作用上面大致与legend类似。
__author__ = 'lee' # 2015年11月05日13:20:39 import numpy as np import matplotlib.pyplot as plt mu, sigma = 100, 15 x = mu + sigma * np.random.randn(10000) # the histogram of the data # 设置数据的直方图 n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75) plt.xlabel("Smarts") plt.ylabel("Probability") plt.title(r"$\sigma_i=15$") plt.text(60, .025, r'$\mu=100,\ \sigma=15$', color = 'r') plt.axis([40, 160, 0, 0.03]) plt.grid(True) plt.show()
效果图:
text位置和数学公式
plt.text(60, .025, r’$\mu=100,\ \sigma=15$’, color = ‘r’)
前两位表示这个text的坐标在(60, 0.25)的地方,
所以text文字的开头就在直角坐标系中(60, 0.25)处
另外text是可以设置在图形中的任何位置的,只需要更具坐标自己调节就可以了
添加数学公式如:具体参见Matplotlib手册54页
属性
这些属性都可以设置到title, xlabel, ylabel中
给图形添加注解
__author__ = 'lee' # 2015年11月05日13:51:58 import numpy as np import matplotlib.pyplot as plt ax = plt.subplot(111) t = np.arange(0.0, 5.0, 0.01) s = np.cos(2*np.pi*t) # line, = plt.plot(t, s, lw=2) plt.plot(t, s, lw=2) plt.annotate("local max", xy=(2, 1), xytext=(3, 1.5), arrowprops=dict(width = 2, facecolor="black", shrink=0.05), ) plt.ylim(-2,2) plt.show()
注解效果图:
注解文本位置和箭头位置
通过annotate注解进行设置,
此时的注解文本的位置依照xy,xytext这两个值来确定的
也就是要注解的位置,和注解文字的位置
注:如果是在雷达图中的注解位置是按照度数(np.pi)和半径来确定位置的,
也是需要两个值来确定。例如:
xy = (-np.pi/7, 0.7), xytext = (-np.pi/2, 7)
注解箭头属性:
以上代码中的箭头代码:
plt.annotate(“local max”, xy=(2, 1), xytext=(3, 1.5),
arrowprops=dict(width = 2, facecolor=”black”, shrink=0.05),)
text的属性可以直接加载里面,如:将标注的字体改为红色:
plt.annotate(‘local max’, xy=(2, 1), xytext=(3, 1.5), color = ‘r’,
arrowprops=dict(facecolor=’black’, shrink=0.05))
如果需要改变箭头的属性,就需要用到上述属性
注:在属性设置中,当shrink属性超过50%,也就是设置的值大于0.5时,箭头就会反转。