目录
实训
需求:绘制某股票一周内收盘价折线图
1.导入模块并设置中文黑体
代码如下:
#导入模块
%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt
#设置中文黑体
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
2. 准备数据
代码如下:
#准备数据
x_data = np.arange(1,8,1)
y_data = [44.98, 45.02, 44.32, 41.05, 42.08, 42.08, 42.08] # 周末休市
3. 创建画布和坐标系
代码如下:
#创建画布和坐标系
ax = plt.axes((0.2,0.2,0.5,0.5))
4.绘制图表
代码如下:
#绘图
ax.plot(x_data,y_data,'mo-')
5.定制刻度
代码如下:
#定制刻度
ax.set_xticks([1,2,3,4,5,6,7])#刻度位置
ax.set_xticklabels(['周一','周二','周三','周四','周五','周六','周日'])#x轴的刻度标签
plt.tick_params(direction='in',length=8,width=2,labelrotation=45)
注:
tick_params0函数的语法格式如下:
tick params(axis='both',**kwargs)
该函数的常用参数的含义如下:
- axis : 表示选择操作的轴,可以取值为x、y或both,默认为“both'。
- reset : 若设为 True,表示在处理其他参数之前均使用参数的默认值。
- which:表示刻度的类型,可以取值为 'major、'minor 或both',默认为'major'。
- direction:表示刻度线的方向,可以取值为n'、out'或inout'。
- length : 表示刻度线的长度。
- width : 表示刻度线的宽度。
- color:表示刻度线的颜色。
- pad :表示刻度线与刻度标签的距离。
- labelsize:表示刻度标签的字体大小。
- labelcolor:表示刻度标签的颜色。
- bottom,top,left,right:表示是否显示下方、上方、左侧、右侧的刻度线。labelbottom,labeltop,labelleft, labelright :表示是否显示下方、上方、左侧、右侧的刻度标签。
- labelrotation :表示刻度标签旋转的角度 。
6. 设置轴标签
代码如下:
#设置轴标签
ax.set_ylabel('收盘价(元)')
ax.set_xlabel('周日期')
7.隐藏轴脊
代码如下:
#隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
注:
axis0函数的语法格式如下所示:
axis(option,*args,**kwargs)
该函数的参数 option 可以接收布尔值或字符串。其中,布尔值True 表示显示轴和刻度False 表示隐藏轴脊和刻度。字符串通常可以是以下任一取值:
- 'on':显示轴脊和刻度,等同于 True。
- 'off' :隐藏轴脊和刻度,等同于 False。
- 'equal': 通过更改轴限设置等比例。
- 'scaled':通过更改绘图框的尺寸设置等比例
- 'tight' :设置足够大的限制以显示所有的数据
- 'auto':自动缩放。
此外,Axes 类的对象也可以使用 axis0 方法隐藏坐标轴的轴脊
8. 展示图表
代码如下:
#展示图表
plt.show()
效果如下:
完整代码如下:
#导入模块
%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))
#绘图
ax.plot(x_data,y_data,'mo-')
#定制刻度
ax.set_xticks([1,2,3,4,5,6,7])#刻度位置
ax.set_xticklabels(['周一','周二','周三','周四','周五','周六','周日'])#x轴的刻度标签
plt.tick_params(direction='in',length=8,width=2,labelrotation=45)
#设置轴标签
ax.set_ylabel('收盘价(元)')
ax.set_xlabel('周日期')
#隐藏上轴脊和右轴脊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
#展示图表
plt.show()