一、坐标轴:matplotlib 中的直角坐标系由两条水平4坐标轴、两条垂直的直坐标轴以及围成的给图区域构成。以限制图形显示的区域
xaxis:获取x轴
yaxis:获取y轴
spines:获取包含全部的轴脊的字典
访问spines属性后会返回一个OrderedDict类的对象。OrderedDict类是dict的子类,它可以维护添加到字典中的键值对的顺序。例如,获取某坐标轴的全部轴脊,代码如下:
print(ax.spines)
OrderedDict:字典中包含spine类的对象元组,它以第一个元素为键,使用,left、right、bottom、top来获取左下右上的spine对象
二、向任意位置添加坐标轴
matplotlib 支持向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴,而不再受规划区域的限制。pyplot 模块可以使用axesO函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。axes( )函数的语法格式如下:
axes(arg=None,projection=None,polar=Felse,aspect,frame_on,**kwargs)
None:表示使用subplot(111)添加的与画布大小等同的axes对象
4-tuple:由4个浮点型的元素(取值范围:0~1)组成的元组(left,bottom,width,height)left和bottom表示底部和左,width,height表示高度和右
参数:projection表示坐标轴的类型,可以是None,aitoff,hammer,lambert,mollweide,polar或rectilinear中取任何一值也可以自定义
参数polar 表示是否使用极坐标,若设为True,则其作用等价于 projecion=polar。
参数aspect 表示坐标轴缩放的比例,可接收‘auto'、'equal'、num中任一取值。
参数frame_on 表示是否绘制每个坐标轴的轴脊。
三、定制刻度
2,定制刻度的样式:
在matplotlib中,坐标轴的刻度有着固定的样式,例如,刻度线的方向是朝外的,刻度线的颜色是黑色等。pyplot中可以使用tick_paramsO函数定制刻度的样式。tick_params( )函数的语法格式如下:
tick_params (axis='both',**kwargs)
colo:设置颜色
reset:若为Ture,表示在处理的其他的参数之前均是使用参数默认值
which:为刻度类型(major,minor或both)
direction:表示刻度方向取值为in out inout
pad:表示距离
四、隐藏轴脊
1、使用pyplot的axis()函数可以设置或获取一些坐标轴的属性
axis()函数如下
axis(option,*args,**kwargs)
equal:通过改轴限制比例
scaled:通过改图框的比例设置比例
tight:设置足够大的限制以显示所以数据
auto:自动放缩
五、移动轴脊
spine提供一种设置轴脊的set_position()方法
set_position(self,position)
position_type:位置的类型
元素amount代表位置
position_type的取值:
outward:表示轴脊置于移出数据区域的指定位置
axes:表示轴脊置于指定的坐标中
center(‘axis’,0.5)
zere:(‘data’,0.0)
六、
# 0.设置中文黑体
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 1.准备数据
x_data = np.arange(1,8,1)
y_data = [44.98, 45.02, 44.32, 41.05, 42.08, 42.08, 42.08] # 周末休市
# 2.创建画布和坐标系
fig = plt.figure()
ax=fig.add_axes((0.2,0.2, 0.5,0.5))
# 3.绘图
ax.plot(x_data,y_data,'-o',ms=8)
# 4.定制刻度
x_name = ['周一','周二','周三','周四','周五','周六','周日']
# 5.设置轴标签
ax.tick_params(direction='in',width=2,length=8)
plt.xticks(x_data,x_name,rotation=35)
ax.set_xlabel('周日期')
ax.set_ylabel('周盘价',rotation=0,x=0.01,y=0.4)
# 6.隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
# 7.展示图表
plt.show