灵活运用所学知识,按要求绘制折线图

本文详细介绍了如何在JupyterNotebook和PyCharm中使用Python的matplotlib库,通过numpy生成数据,创建图形、定制刻度、设置轴标签并隐藏不必要的轴脊,最终展示股票收盘价的折线图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要求:

一、导入模块

#%matplotlib notebook #在jupyter notebook中使用,pycharm可不用
import numpy as np
import matplotlib.pyplot as plt

# 0.设置中文黑体
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

二、准备数据

x_data = np.arange(1,8,1)   
#numpy库里创建一维数组函数np.arange函数(起始值,终止值,步长),左闭右开区间
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))#在距画布顶部 0.2、左侧 0.2 的位置上添加一个宽度为 0.5、高度为 0.5的绘图区域。

matplotlib支持向画布的任意位置添加自定义大小的坐标系统,同时显示坐标轴,而不再受规划区域的限制。pyplot模块可以用axes()函数创建一个Axes类的对象,并将Axes类的对象添加到当前画布中。

使用方法:axes(arg=None, projection=None, polar=False, aspect,frame_on, **kwargs)

1.projection表示坐标轴的类型,可以是None、'aitoff'、'hammer'、'lambert'、'mollweide'、'polar'、'rectilinear'中的任一取值,也可以使用自定义的类型。

2.polar表示是否使用极坐标,若设为True,则其作用等价于projection='polar'。

3.aspect表示坐标轴缩放的比例,可接收'auto'、'equal'、num中任一取值

4.frame_on表示是否绘制每个坐标轴的轴脊。

四、绘制图形

ax.plot(x_data,y_data,'-',marker='o',color='m',markersize=13)

注:关于折线图可查看第一份制作

marker 设置标记的形状

markersize = ms #设置标记的大小

五、定制刻度

#x轴、y轴的刻度线朝内且长度为8,宽度为2,x轴刻度标签旋转30度
ax.tick_params(axis='x',direction='in',length=8,width=2,labelrotation=30)
ax.tick_params(axis='y',direction='in',length=8,width=2)

pyplot中可以使用tick_params()函数定制刻度的样式。方法如下:

tick_params(axis='both',**kwargs)

注:axis:表示选择操作的轴,可以取值为‘x’,‘y’,‘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:表示是否显示下方、上方、左侧、右侧的刻度标签。

六、设置轴标签

ax.set_xlabel('周日期',fontsize=15,labelpad=15)  #设置x轴文本标签 字体大小15,与刻度线距离15
ax.set_ylabel('收盘价(¥)',fontsize=15,rotation=360,labelpad=40)  #设置y轴文本标签,字体大小15,旋转360°,与刻度线距离40。
ax.set_xticks([1,2,3,4,5,6,7])
ax.set_xticklabels([r'周一',r'周二',r'周三',r'周四',r'周五',r'周六',r'周日',])#‘r’格式化文本

七、隐藏上轴脊和右轴脊

ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')

隐藏坐标轴的部分轴脊,只需要访问spines(获取包含全部轴脊的字典)属性获取相应的轴脊。

ax.spines['top'].set_color('none')
ax.spines['bottom'].set_color('none')

ax.spines['left'].set_color('none')
ax.spines['right'].set_color('none')

访问spines属性后返回一个OrderedDict类的对象。OrderefDict 类是dict的子类,它可以维护添加到字典中的键值对的顺序。例如,获取某坐标轴的全部轴脊。

八、展示图表

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值