绘图与可视化
如果想在jupyter notebook中使用
%matplotlib notebook
导入matplotlib包
import matplotlib.pyplot as plt
直接生成一个简单图形
data = np.arange(10)
plt.plot(data)
matplotlib所绘制的图位于Figure对象中,使用plt.figure就生成一个图片
fig = plt.figure()
不能在空白的图片中进行绘图,,需要创建子图
ax1 = fig.add_subplot(2,2,1) //2行2列的第一个位置
notebook中,单个单元格运行后,图表会重置,所以对于复杂的图表,所有绘图命令放在一个单元格中
如果定义多个子图,绘图之后会默认在最后一个子图进行绘制
plt.plot([1.4,1.2])
fig.add_subplot返回对象是Axes Subplot对象,使用这些对象可以直接在空白子图进行绘图。
matplotlib包含了一个便捷方法plt.subplots,它创建一个新的图片,然后返回包含了已生成子图对象的Numpy数组
fig, axes = plt.subplots(2,3) //两行三列个子图
fig, axes = plt.subplots(2,3,sharex=True,sharey=True) //共享x轴y轴
调整间距的函数
plt.subplots_adjust(left=None, bottom=None,right=None,top=None,wspace=None,hspace=None)
颜色标记线类型
plot函数接收一些带有x,y的数组以及参数决定颜色和线形
ax.plot(x,y,'g--')
或
ax.plot(x,y,linestyle='--', color='g')
还可以带标记,但是线类型,标记类型必须在颜色后面
plt.plot(randn(30).cumsum(), 'ko--')
plot(randn(30).cumsum(),color='k',linestyle='dashed',marker='o')
刻度标签和图例
pyplot接口包含了xlim, xticks和xticklabels等方法,分别控制了绘图范围、刻度位置和刻度标签。有两种调用方式:
没有参数情况下,返回x轴的绘图范围
plt.xlim()
有参数情况下,将x轴范围设置成参数范围
plt.xlim([0,10])
设置x轴刻度和刻度标签
ticks = ax.set_xticks([0,250,500,750,1000])
lables=ax.set_xticklabels(['one','two','three','four','five'],rotation=30 ,fontsize='small') //retation=30表示旋转30度
可以给x轴一个名称
ax.set_xlabel('stages')
y轴同理
可以给子图一个标题
ax.set_title('my title matplotlib plot')
添加图例,图例是区分绘图元素的重要内容
ax.plot(np.random.randn(1000).cumsum(), 'k', label='one')
ax.plot(np.random.randn(1000).cumsum(), 'k--', label='two')
ax.plot(np.random.randn(1000).cumsum(), 'k.', label='three')
生成图例
ax.legend(loc='best') // loc参数指定图例位置,best自动找最适合位置
将图片保存到文件
可以使用plt.savefig将活动图片保存到文件。
plt.savefig('figpath.svg') //文件类型可以更改
文件格式可以更改,dpi控制分辨率,bbox_inches可以修剪实际图形的空白,tight表示最小空白
plt.savefig('figpath.png',dpi=400,bbox_inches='tight')
matplotlib设置
可以更改默认设置plt.rc('figure',figsize=(10,10))
rc的第一个参数是想要自定义的组件,比如‘figure','axes','xtick','grid','legend'
标签:plot,None,plt,基础,matplotlib,绘图,ax From: https://www.cnblogs.com/xiaowuroommate/p/17521365.html