需求一:绘制某股票一周内收盘价折线图(见运行结果展示图)
一、首先导入模块。
%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))
五、绘图。
plt.plot(x_data, y_data,'mo-',markersize=10)#设置数据点的颜色跟大小
六、定制刻度。
ax.set_xticks([1,2,3,4,5,6,7])
ax.set_xticklabels(['周一','周二','周三','周四','周五','周六','周日'])
ax.xaxis.set_tick_params(direction='in', length=8, width=2, labelrotation=45)
ax.yaxis.set_tick_params(direction='in', length=8, width=2)
七、设置轴标签。
ax.set_xlabel('周日期')
ax.set_ylabel('收盘价(¥)',rotation='horizontal',labelpad=40)
#新刻度标签的方向为水平,并设置标签与标签轴的距离
八、隐藏上轴脊和右轴脊。
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
九、展示图表。
plt.show()
十、代码运行结果显示如下:
知识补充:
xaxis | 获取x轴 |
yaxis | 获取y轴 |
spines | 获取包含全部轴脊的字典 |
定制刻度的样式
:pyplot中可以使用tick_params()函数定制刻度的样式,其语法格式:tick_params(axis='both', **kwargs
axis | 表示选择操作的轴,可以取值为'x'、'y'或'both',默认为"both' |
reset | 若设为True,表示在处理其他参数之前均使用参数的默认值 |
which | 表示刻度的类型,可以取值为'major'、'minor'或'both',默认为'major' |
direction | 表示刻度线的方向,可以取值为'in'、'out' 或'inout' |
length | 表示刻度线的长度 |
width | 表示刻度线的宽度 |
color | 表示刻度线的颜色 |
pad | 表示刻度线与刻度标签的距离 |
labelsize | 表示刻度标签的字体大小 |
labelcolor | 表示刻度标签的颜色 |
bottom,top,left,right | 表示是否显示下方、上方、左侧、右侧的刻度线 |
labelbottom, labeltop, labelleft, labelright | 表示是否显示下方、上方、左侧、右侧的刻度标签 |
labelrotation | 表示刻度标签旋转的角度 |
隐藏部分轴脊
matplotlib可以只隐藏坐标轴的部分轴脊,只需要访问spines属性获取相应的轴脊,之后调用set_color()方法将轴脊的颜色设为none即可。
隐藏全部轴脊
使用pyplot的axis()函数可以设置或获取一些坐标轴的属性,包括显示或隐藏坐标轴的轴脊。axis()函数的语法格式如下所示:axis(option, *args, **kwargs)
on | 显示轴脊和刻度,等同于True |
off | 隐藏轴脊和刻度,等同于False |
equal | 通过更改轴限设置等比例 |
scaled | 通过更改绘图框的尺寸设置等比例 |
auto | 自动缩放 |
tight | 设置足够大的限制以显示所有的数据 |