文章中我们学习的主要技能有:移动坐标轴,显示图例,显示标记等。
1 移动坐标轴
import matplotlib.pyplot as plt
import numpy as np
# 设置图形的长宽比例
plt.figure(figsize=(14,6))
# 绘制sin曲线
plt.subplot(121)
x = np.linspace(-np.pi, np.pi, 500, endpoint=True)
y = np.sin(x)
plt.plot(x, y)
plt.subplot(122)
plt.plot(x, y)
# 得到坐标轴
ax = plt.gca()
# 获取右边和上边设置颜色为none
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 移动坐标轴
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data', 0))
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
plt.show()
2 显示图例
from matplotlib.pyplot import *
import numpy as np
x = np.linspace(-np.pi, np.pi, 500, endpoint=True)
y = np.sin(x)
y0=np.cos(x)
plot(x, y,label='sin')
plot(x, y0,label='cos')
# 显示标题
title('$\sin$'+' & '+'$\cos$')
# 设置图例 loc 位置 ncol一行显示多少列 borderaxespad 坐标轴与图例之间的距离
# bbox_to_anchor指定图例的起始位置 参数为起始点 (整个坐标轴的高度为1)
legend(bbox_to_anchor=(0.,1.02), loc=3, mode='expend', ncol=2, borderaxespad=0.)
# 第一个参数 要显示的文字 指向的坐标 xycoords ='data' 和数据使用相同的坐标系 xytext 文字的坐标 arrowprops 箭头的样式
annotate('max sin(x)', (1.5, 1), xycoords='data', xytext=(2.88, 0.95), arrowprops=dict(arrowstyle='<-'))
annotate('max cos(x)', (0, 1), xycoords='data', xytext=(-2.5, 0.7), arrowprops=dict(arrowstyle='<-'))
show()
3 显示标记
from pylab import *
import numpy as np
# 得到图形
fig=figure()
# 得到现在的坐标轴
ax=gca()
start=datetime.datetime(2013,1,1)
end=datetime.datetime(2013,12,31)
delta=datetime.timedelta(days=1)
# 得到所有的日期
dates=mpl.dates.drange(start,end,delta)
# 生成指定数量的0-1的随机数
values=np.random.rand(len(dates))
# 标记marker mfc标记的中心颜色 mec 标记的边缘颜色
ax.plot(dates,values,linestyle='-',marker='v',mfc='r',mec='g')
date_format=mpl.dates.DateFormatter('%Y-%m-%d')
# 设置x轴的主要格式为日期格式
ax.xaxis.set_major_formatter(date_format)
# 自动排版合适的方式位置显示x轴的时间
fig.autofmt_xdate()
show()