坐标轴的定制:绘制某股票一周内收盘价折线图

坐标轴概述

在绘制图表的过程中,matplotlib 会根据所绘图表的类型决定是否使用坐标系,或者显示哪种类型的坐标系。例如,饼图无坐标系,雷达图需使用极坐标系,折线图需要使用直角坐标系等。其中,直角坐标系经常被使用。matplotlib 中的直角坐标系由两条水平坐标轴、两条垂直坐标轴以及围成的绘图区域构成,以限制图形显示的区域,其左侧和下方的坐标轴(叫做y轴和x轴)经常被使用,其他坐标很少被使用。

坐标轴的结构相同,主要包括轴脊、刻度,其中刻度又可以细分为刻度线和刻度标签,刻度线又可以细分为主刻度线和次刻度线。坐标轴的各部分分均是matplotlib 类的对象:坐标轴是 axis.Axis 类的对象;轴脊是 spines.Spine 类的对象;刻度是 axis.Ticker 类的对对象。此外,常用的 x 轴是一个 axis.Xaxis 类的对象,y 轴是一个 axis.Yaxis 类的对象。如前所述的·所有类的对象均包含于 Axes  类对象中,可通过 Axes 类的一些属性分别获取,关于这些属性的介绍如下:

  • xaxis:获取 x 轴。
  • yaxis:获取 y 轴。
  • spines:获取包含全部轴脊的字典。

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

print(ax.spines)

 定制刻度的样式

在 matplotlib 中,坐标轴的刻度有着固定的样式,例如,刻度线的方向是朝外的,刻度线的颜色是黑色等。pyplot 中可以使用 tick_params() 函数定制刻度的样式。。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 中的坐标系默认有 4 个轴脊,分别是上轴脊、下轴脊、左轴脊和右轴,其中上轴脊和右轴脊并不经常使用,大多数情况下可以将上轴脊和右轴脊隐。matplotlib 中提供了隐全部轴脊或部分轴脊的方法。下面对轴脊的隐藏进行详细介绍。

隐藏全部轴脊

使用 pyplot 的 axis() 函数可以设置或获取一些坐标轴的属性,包括显示或隐藏坐标轴的轴脊。axis() 函数的语法格式如下所示:

axis(option,*args,**kwargs)

该函数的参数 option 可以接收布尔值或字符串。其中布尔值 True 表示显示轴和刻度,False 表示隐藏轴脊和刻度。字符串通常可以是以下任一取值:

  • 'on':显示轴脊和刻度,等同于 True。
  • 'of':隐藏轴脊和刻度,等同于 False。
  • 'equal':通过更改轴限设置等比例。
  • 'scaled':通过更改绘图框的尺寸设置等比例。
  • 'tight':设置足够大的限制以显示所有的数据。
  • 'auto':自动缩放。

此外,Axes 类的对象也可以使用 axis() 方法隐藏坐标轴的轴脊。

隐藏部分轴脊

matplotlib可以只隐藏坐标轴的部分轴脊,只需要访问spines属性获取相应的轴脊,之后调用set_color()方法将轴脊的颜色设为none即可。

实例:绘制某股票一周内收盘价折线图

某股票一周的收盘价

周日期收盘价
Monday44.98
Tuesday45.02
Wednesday44.32
Thursday41.05
Friday42.08
Saturday——
Sunday——
需求:

根据表的数据绘制一个折线图,具体要求如下:
(1) 在距画布顶部0.2、左侧0.2的位置上添加一个宽度为0.5、高度为0.5的绘图区域;

(2)x轴的刻度标签为周日期;

(3)刻度线样式调整:方向朝内、宽度为2,长度为8;

(4) 隐藏坐标轴的上轴脊、右轴脊。

# 插入模块

#%matplotlib notebook
import numpy as np
import matplotlib.pyplot as plt

 # 1.设置中文黑体

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.创建画布和坐标系

fig = plt.figure()
ax = fig.add_axes((0.2, 0.2, 0.5, 0.5))

 # 4.绘图

ax.plot(x_data, y_data, 'mo-', markersize=15)

 # 5.定制刻度

ax.set_xticks([1,2,3,4,5,6,7])
ax.set_xticklabels(['周一', '周二', '周三', '周四', '周五', '周六', '周日'])
ax.tick_params(direction='in', width=2, length=8) #刻度线样式调整
ax.xaxis.set_tick_params(labelrotation=30) #刻度标签旋转角度调整

 # 6.设置轴标签

ax.set_xlabel('周日期')
ax.set_ylabel('收盘价(¥)')

 # 7.隐藏上轴脊和右轴脊

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

 # 8.展示图表

plt.show()
运行结果如下: 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第2章 图形基础 34 2.1 笔和画刷 34 2.1.1 pen 类 34 2.1.2 brush 类 35 2.2 基本图形形状 37 2.2.1 点 37 2.2.2 直线和曲线 37 2.2.3 矩形、椭圆形和圆弧形 40 2.2.4 多边形 42 2.3 颜色 44 2.4 双倍缓存 66 第3章 坐标系统和颜色变换 69 3.1 坐标系统 69 3.2 颜色变换 77 第二部分 二维图形的基本算法 第4章 二维矩阵和变换 82 4.1 矩阵基础和变换 82 4.2 齐次坐标 82 4.2.1 齐次坐标中的缩放 83 4.2.2 齐次坐标中的平移 83 4.2.3 齐次坐标中的旋转 84 4.2.4 变换组合 85 4.2.5 c#中矩阵的定义 86 4 .2.6 c#中的矩阵操作 87 4.2.7 c#中基本的矩阵变换 89 4.3 c#中图形对象的变换 93 基本变换 93 4.4 c#中的多对象变换 101 4.5 文字变换 105 第5章 二维线形图形 109 5.1 序列化和反序列化及二维图形的基本框架 109 5.1.1 c#序列化和反序列化 110 5.1.2 二维图形的基本框架 113 5.2 二维图形 248 5.2.1 简单实例 248 5.2.2 图例 278 5.2.3 符号 289 5.2.4 对数比例 302 5.2.5 图形的修饰 308 5.3 阶梯状图 316 5.4 多y轴图 318 第6章 特殊二维图形 327 6.1 创建柱状图 327 6.1.1 水平柱状图 327 6.1.2 垂直柱状图 343 6.1.3 图形充填柱状图 344 6.1.4 重叠柱状图 346 6.2 饼状图 348 6.3 误差图 361 6.4 股票图 367 6.4.1 最高最低收盘价股票图 368 6.4.2 最高最低开盘收盘价股票图 369 6.4.3 最高最低价股票图 377 6.4.4 k 线图(阴阳烛图) 380 6.5 面积图 389 6.6 综合图 390 第三部分 三维图形的相关知识及三维图形的实现 第7章 三维矩阵和变换 396 7.1 三维数学概念 396 7.1.1 操作三维对象 396 7.1.2 数学结构 397 7.2 三维中的基本矩阵和变换 402 7.2.1 c#中三维点和矩阵的操作 403 7.2.2 三维的基本变换 405 7.3 方位角和仰角 434 7.4 三维图形中的特殊坐标系统 439 7.4.1 球坐标系统 440 7.4.2 圆柱坐标系统 443 7.5 特殊坐标中的实际应用 447 7.5.1 球坐标示例 447 7.5.2 双缓存 463 第8章 三维图形 473 8.1 三维图形基础 473 8.1.1 point3和matrix3类 473 8.1.2 chartstyle类 476 8.1.3 坐标轴 496 8.1.4 网格线 496 8.1.5 标签 497 8.2 三维折线图 503 8.3 三维图形函数包 508 8.3.1 chartstyle2d类 509 8.3.2 point4类 515 8.3.3 dataseries类 516 8.3.4 chartfunctions类 521 8.3.5 drawchart类 526 8.4 曲面图的实现 541 8.4.1 网格图 541 8.4.2 幕布网格图 548 8.4.3 瀑布网格图 551 8.4.4 曲面图 553 8.5 x-y平面色彩图 559 8.6 轮廓图 564 8.6.1 轮廓图的算法 564 8.6.2 轮廓图的实现 564 8.7 组合图 569 8.7.1 三维体系中的x-y色彩图 570 8.7.2 三维体系中的轮廓图 571 8.7.3 网格-轮廓组合图 575 8.7.4 曲面-轮廓组合图 576 8.7.5 填充曲面-轮廓组合图 576 8.8 三维柱状图 577 实现柱状图 577 8.9 切片图 591 切片图的实现 591 第四部分 c#中应用微软office的excel实现各种二维及三维图形 第9章 应用程序中的excel图 600 9.1 excel和c#间的互操作 600 9.2 c#应用程序中的excel图示例 602 9.2.1 excel图对象模型 602 9.2.2 创建独立的excel图 604 9.2.3 创建嵌入式excel图 607 9.3 更多的excel图 608 9.3.1 柱状图 608 9.3.2 饼状图 611 9.3.3 面积图 613 9.3.4 圆环图 615 9.3.5 雷达图 615 9.3.6 股价图 617 9.3.7 曲面图 619 9.3.8 颜色映射 622 9.4 整合excel图到windows forms应用程序中 627 9.4.1 windows窗体上的独立excel图 627 9.4.2 windows窗体上的嵌入式excel图 631 第五部分 实现文件的相关知识 第10章 文件的读/写 634 10.1 c#文件读/写常用类 634 10.1.1 system.io.file类和system.io.fileinfo类 634 10.1.2 system.io.directory类和system.directoryinfo类 637 10.2 c#基于流的输入/输出 639 流的继承结构 640 10.3 文件读/写操作涉及的类 643 10.4 一些常见的问题及其解决 方案 643

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2224070232

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值