坐标轴概述
在绘制图表的过程中,matplotlib会根据所绘图表的类型决定是否使用坐标系,或者显示哪种类型的坐标系。例如,饼图无坐标系,雷达图需使用极坐标系,折线图需使用直角坐标 坐系等。其中,直角坐标系经常被使用。matplotlib中的直角坐标系由两条水平坐标轴、两条垂直坐标轴以及围成的绘图区域构成,以限制图形显示的区域,其左侧和下方的坐标轴(叫作y轴和x轴)经常被使用,其他坐标轴很少被使用。
坐标轴的结构相同,主要包括轴脊、刻度,其中刻度又可以细分为刻度线和刻度标签,刻度线又可以细分为主刻度线和次刻度线。坐标轴的各部分均是matplotlib类的对象:坐标轴是axis.Axis类的对象;轴脊是spines.Spine类的对象;刻度是axis.Ticker类的对象。此外,常用的x轴是一个axis.Xaxis类的对象,y轴是一个axis.Yaxis类的对象。下面以实例来给大家介绍详细用法。
绘制某股票一周内收盘价折线图
一、导入模块
%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] # 周末休市
三、创建画布和坐标系
ax = plt.axes((0.2, 0.2, 0.5, 0.5))
以上代码的作用是:在距当前画布左侧0.2、画布底部0.2的位置上添加一个宽度为0.5、高度为0.5的坐标系。
四、绘图
ax.plot(x_data, y_data, color='purple', marker='o', markersize=12)
# marker:自定义数据标记。
# markersize:设置数据标记的大小。
五、定制刻度
ax.xaxis.set_tick_params(direction='in', length=7, width=3)
ax.yaxis.set_tick_params(direction='in', length=7, width=3)
ax.set_xticks([1,2,3,4,5,6,7],['周一','周二','周三','周四','周五','周六','周日'], rotation=25)
# direction:设置刻度线的方向,可以取值‘in’,‘out’或‘inout’
# length、width:设置刻度线的高度和宽度
# rotation:设置刻度标签文本的角度
六、设置轴标签
ax.set_xlabel('周日期', labelpad=15, size=15)
ax.set_ylabel('收盘价(¥)', rotation=0, labelpad=35, size=15)
# labelpad:表示轴标签与刻度线的距离
七、隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
八、展示图表
plt.show()
运行结果如下: