绘图要求如下:
已知某股票一周内收盘价如下表所示:
周日期 收盘价 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) 隐藏坐标轴的上轴脊、右轴脊。
1.设置运行结果显示方式和导入模块
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
2.设置中文黑体和准备数据
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] # 周末休市
3.创建代表画布的Figure类的对象fig,在画布fig上添加坐标系风格的绘画区域ax
fig = plt.figure()
ax = fig.add_axes((0.2, 0.2, 0.5, 0.5))
4.绘制折线图
ax.plot(x_data, y_data, 'o-', ms=14, color='#B800B8')
# 参数ms表示数据标记点的大小,'#B800B8'表示二进制的紫色
5.定制刻度
ax.tick_params(direction='in', length=8, width=2)
# 参数direction='in'表示刻度线的方向朝内
6.设置轴标签
labels = ['周一','周二','周三','周四','周五','周六','周日']
plt.xticks(x_data,labels, rotation=25.) # rotation表示旋转角度
ax.set_xlabel('周日期', fontsize=14, labelpad=15) # labelpad表示标签距坐标轴的距离
ax.set_ylabel('收盘价($\yen$)', fontsize=14, rotation=360., labelpad=35)
7.隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none') # 隐藏上轴脊
ax.spines['right'].set_color('none') # 隐藏右轴脊
matplotlib可以只隐藏坐标轴的部分轴脊,只需要访问spines属性获取相应的轴脊,之后调用set_color()方法将轴脊的颜色设为none即可。
8.展示图表
plt.show()
展示图表结果如下: