已知某股票一周内收盘价如下表所示。
某股票一周的收盘价
周日期 收盘价 Monday 44.98 Tuesday 45.02 Wednesday 44.32 Thursday 41.05 Friday 42.08 Saturday —— Sunday —— 根据上表的数据绘制一个折线图,具体要求如下:
(1)在距画布顶部0.2、左侧0.2的位置上添加一个宽度为0.5、高度为0.5的绘图区域;
(2)x轴的刻度标签为周日期;
(3)刻度样式调整:方向朝内、宽度为2,长度为8;
(4)隐藏坐标轴的上轴脊、右轴脊。
先导入模块
%matplotlib notebook #在控制台嵌入GUI交互窗口,显示图表
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] # 周末休市
创建画布和坐标系,用axes()函数在画布的任意位置添加制定大小的坐标系
fig = plt.figure()
ax = plt.axes((0.2,0.2, 0.5,0.5))#由4个浮点型元素(取值范围为0~1)组成的元组(left,bottom,width,height)
#前两个元素分别表示坐标轴左侧和底部的边缘到画布的相对距离,用于确定坐标轴的位置
#后两个元素分别表示坐标轴的宽度和高度,用于确定坐标轴的相对大小
注意:上述函数后两个数据(width,height)表示的是占整个画布的多少,而非x y轴的长度
绘制折线图
ax.plot(x_data,y_data,
'o-',
ms=13.8,#可以控制数据点和折线的大小、粗细
color='purple')
使用tick_params()函数定制刻度的样式
ax.tick_params(axis='both',#表示选择操作的轴,取值有‘x’‘y’‘both’
direction='in',#表示刻度线的方向,取值有‘in’‘out’‘inout’
length=8,width=2)#表示刻度线的长度和宽度
labels=['周一','周二','周三','周四','周五','周六','周日']
plt.xticks(x_data,labels,rotation=45.)
设置轴标签
ax.set_xlabel('周日期',
fontsize=13.8,#字体大小
labelpad=14.8)#标签距坐标轴的距离)
ax.set_ylabel('收盘价(¥)',
fontsize=13.8,#字体大小
rotation=360.,#字体旋转角度
labelpad=28.8)#标签距坐标轴的距离
隐藏上轴脊和右轴脊(隐藏部分轴脊)
访问spines属性获取相应的轴脊,之后调用set_color()方法将轴脊的颜色设为none
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
展示图表
plt.show()
运行结果如下: