import matplotlib.pyplot as plt
import numpy as np
在x轴上(-3,3)之间选取50个点
x = np.linspace(-3,3,50)
y1 = 3*x
y2 = x**3
创建一个图标,尺寸是16,9
plt.figure(num=3,figsize=(16,9))
为了能在后面引用,l1和l2后面必须加一个,
l1, = plt.plot(x,y1,c='red',lw=2.0,
ls='--',label='dwom')
l2, = plt.plot(x,y2,label='up')
限制X,Y轴的范围,和命名
plt.xlim(-1,2)
plt.ylim(-2,3)
plt.xlabel('I am x')
plt.ylabel('I am y')
#new_ticks = np.linspace(-1,2,5)
#plt.xticks(new_ticks)
给y轴的这些点命名,r是正则表达式,$是为了更好看,斜体,‘\ ’是反译空格
plt.yticks([-3,-1.8,0,1.22,3],
[r'$really\ bad$',r'$bad\ \alpha$',r'$normal$',r'$good$',r'$really\ good$'])
这段定义轴,实测中间两句可以不要,x肯定是buttom,y也肯定是left啊
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
#ax.yaxis.set_ticks_position('bottom')
#ax.xaxis.set_ticks_position('left')
data表示绝对位置,axes表示相对位置(百分比)
ax.spines['bottom'].set_position(('data',0))
ax.spines['left'].set_position(('axes',1-0.618))
图列的安放,有以下这些方式
best
upper right
upper left
lower left
lower right
right
center left
center right
lower center
upper center
center
plt.legend(handles=[l2,l1],labels=['$y1=3*x$','$y2=x**3$'],loc='lower right')
垂直于x画一条线
x0 = 1.2
y0 = x0**3
plt.plot([x0,x0],[0,y0],'k--',c='green',lw=2.0)
注释线的交点
xy=(x0,y0)指出交点
xycoords='data’可有可无
接下来以x0,y0为基准定义注释的相对位置,以及字体大小
最后定义箭头的形式和弧度
plt.annotate('$x**3=%2f$'% y0,xy=(x0,y0),xycoords='data',
xytext=(+30,-30),textcoords='offset points',fontsize=16,
arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=0.3'))
plt.show()