matplotlib模块数据可视化-修改坐标轴位置
2017-08-14 14:26
741 查看
1 导入模块和构造数据
import numpy as npimport matplotlib.pyplot as plt
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth=2,linestyle='--')
2 默认样式
3 获取坐标轴
在matplotlib的图中,默认有四个轴,两个横轴和两个竖轴,可以通过ax = plt.gca()方法获取,gca是‘get current axes’的缩写,获取图像的轴,总共有四个轴top、bottom、left和right。3.1 axes指定要用的轴
由于axes会获取到四个轴,而我们只需要两个轴,所以我们需要把另外两个轴隐藏,把顶部和右边轴的颜色设置为none,将不会显示。# 设置有边框和头部边框颜色为空right、top、bottom、left
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')效果图:
3.2 移动下面和左边的轴到指定位置
# 设置底边的移动范围,移动到y轴的0位置# data:移动轴的位置到交叉轴的指定坐标 outward:不太懂 axes:0.0 - 1.0之间的值,整个轴上的比例 center:('axes',0.5) zero:('data',0.0)
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data',0))ax.spines['bottom']获取底部的轴,通过set_position方法,设置底部轴的位置,例如:ax.spines['bottom'].set_position(('data',0))表示设置底部轴移动到竖轴的0坐标位置,设置left的方法相同,效果图:
3.3 通过axes对象设置坐标轴的显示范围和标签
# 利用axes对象设置轴线的显示范围,与plt.xlim(-1,2)和plt.ylim(-2,3)的作用相同ax.set_xlim(-1,2)
ax.set_ylim(-2,3)
# 利用axes对象设置坐标轴的标签
ax.set_xlabel('x data')
ax.set_ylabel('y data')与上一节中讲到的设置效果相同,但是必须通过set_xxx的方法进行设置.
注意:我python2用的matplotlib 1.3.1版本,设置没有效果,改用python3才有效果,我python3用matplotlib 2.0.2 效果图:
3.4 通过axes对象设置刻度显示的位置
# 设置坐标轴上的数字显示的位置,top:显示在顶部 bottom:显示在底部,默认是noneax.xaxis.set_ticks_position('top')
ax.yaxis.set_ticks_position('left')默认x轴的刻度显示在轴线下面,y的显示在轴线左边,默认都是none,这里修改x的刻度到top顶部,效果图:
4 完整代码及效果图
import numpy as npimport matplotlib.pyplot as plt
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
plt.figure()
plt.plot(x,y1)
plt.plot(x,y2,color='red',linewidth=2,linestyle='--')
# plt.xlim(-1,2)
# plt.ylim(-2,3)
ax = plt.gca() #gca 'get current axes' 获取图像的边框对象
# 设置有边框和头部边框颜色为空right、top、bottom、left
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
# 设置底边的移动范围,移动到y轴的0位置
# data:移动y轴的位置 outward: axes:0.0 - 1.0之间的值,整个轴上的比例 center:('axes',0.5) zero:('data',0.0)
ax.spines['bottom'].set_position(('data', 0))
ax.spines['left'].set_position(('data',0))
# 利用axes对象设置轴线的显示范围,与plt.xlim(-1,2)和plt.ylim(-2,3)的作用相同
ax.set_xlim(-1,2)
ax.set_ylim(-2,3)
# 利用axes对象设置坐标轴的标签
ax.set_xlabel('x data')
ax.set_ylabel('y data')
# 设置坐标轴上的数字显示的位置,top:显示在顶部 bottom:显示在底部,默认是none
ax.xaxis.set_ticks_position('bottom')
ax.yaxis.set_ticks_position('left')
plt.show()
相关文章推荐
- matplotlib模块数据可视化-设置坐标轴
- matplotlib模块数据可视化-设置次坐标轴
- matplotlib模块数据可视化-多图
- matplotlib模块数据可视化-动画
- matplotlib模块数据可视化-设置图例
- matplotlib模块数据可视化-设置tick的能见度
- 数据可视化——Matplotlib模块入门(一)
- matplotlib模块数据可视化-绘制散列图
- matplotlib 可视化 —— 移动坐标轴(中心位置)
- matplotlib模块数据可视化-Annotation标注
- matplotlib模块数据可视化-3D图
- matplotlib模块数据可视化-绘制柱状图
- matplotlib模块数据可视化-figure图像
- matplotlib模块数据可视化-等高线图
- matplotlib模块数据可视化-多图布局,分格显示
- matplotlib模块数据可视化-饼状图及补充图
- matplotlib模块数据可视化-图片处理
- Python科学计算数据可视化模块-Matplotlib
- 数据可视化利器pyechart和matplotlib比较
- 数据可视化——matplotlib.pyplot