坐标轴的定制:绘制某股票一周内收盘价折线图

坐标轴概述

       本次绘制图表过程中,matplotlib会根据所绘图表的类型决定是否使用坐标系,或者显示哪种类型的坐标系。matplotlib中的直角坐标系由两条水平坐标轴两条垂直坐标轴以及围成的绘图区域构成,以限制图形显示的区域,其左侧和下方的坐标轴(叫作y轴和x轴)经常被使用,其他坐标轴很少被使用。

       坐标轴的结构相同,主要包括轴脊、刻度、其中刻度又可以划分为刻度线和刻度标签,刻度线又可以细分为主刻度和次刻度线。坐标轴的各部分均是matplotlib类的对象:坐标轴是axis.Axis类的对象;轴脊是spines.Spine类的对象刻度是axis.Ticker类的对象。此外,常用的x轴是一个axis.Xaxis 类的对象,y轴是一个axis.Yaxis类的对象。如前所述的所有类的对象均包含于Axes类对象中,可通过Axes类的一些属性分别获取,关于这些属性的介绍如下:

       访问spines属性后会返回一个OederedDict类的对象。OederedDict类是dict的子类,它可以维护添加到字典中的键值对的顺序。例如,获取某坐标轴的全部轴脊,代码如下:

print(ax.spines)

向任意位置添加坐标轴

        matplotlib支持向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴,而不再受规划区域的限制。pyplot模块可以使用axes()函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。axes()函数的语法格式如下:

axes(arg=None,projection=None,polar=False,aspect,frame_on,**kwargs)

定制刻度的样式

       在matplotlib中,坐标轴的刻度有着固定的样式,例如,刻度线的方向是朝外的,刻度线的颜色是黑色等。pyplot中可以使用tick_params()函数定制刻度的样式。tick_params()函数的语法格式如下:

tick_params(axis='both',**kwargs)

该函数的常用函数的含义如下:

 隐藏轴脊

matplotlib中的坐标系默认有4个轴脊,分别是上轴脊、下轴脊、左轴脊和右轴脊。

隐藏全部轴脊

       使用pyplot的axis()函数可以设置或获取一些坐标轴的属性,包括显示或隐藏坐标轴的轴脊。axis()函数的语法格式如下所示:

axis(option, *args, **kwargs)

       该函数的参数option可以接收布尔值或字符串。其中,布尔值True表示显示轴脊和刻度,False 表示隐藏轴脊和刻度。字符串通常可以是以下任一取值:

隐藏部分轴脊

       matplotlib可以只隐藏坐标轴的部分轴脊,只需要访问spines属性获取相应的轴脊,之后调用set_color()方法将轴脊的颜色设为none即可。

移动轴脊

在matplotlib中,Spine类提供了一个设计轴脊位置的set_position()方法。set_position()方法的语法格式如下:

set_position(self,position)

例题

绘制某股票一周内收盘价折线图(要求如下图)

一、导入模块

%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

二、设置中文黑体

plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

三、准备数据

x_data = np.arange(1,8,1)
y_data = [44.98, 45.02, 44.32, 41.05, 42.08, 42.08, 42.08] # 周末休市

四、创建画布和坐标系

fig = plt.figure()
ax = fig.add_axes((0.2, 0.2, 0.5, 0.5))

五、绘图

ax.plot(x_data, y_data,marker='o', color='purple', markersize=15)
#折线图数据标记样式为圆形,折线图颜色为紫色

六、定制刻度

ax.set_xticks([1,2,3,4,5,6,7])
ax.set_xticklabels(['周一','周二','周三','周四','周五','周六','周日'])
ax.tick_params(direction='in', width=2, length=8)  
# 设置x,y轴刻度线样式朝内,刻度线长度为8、宽为2
ax.xaxis.set_tick_params(labelrotation=30)     
# 设置x轴字体倾斜45°

七、设置轴标签

ax.set_xlabel('周日期')
ax.set_ylabel('收盘价(¥)',rotation='horizontal', labelpad = 25)

八、隐藏上轴脊和右轴脊

ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

九、展示图表

plt.show()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值