matplotlib阶梯图的实现(step())

step函数概述

step函数用于绘制阶梯图。

根据源码可知,step函数是对plot函数的轻量级封装,很多概念和用法与plot函数非常相似。

def step(self, x, y, *args, where='pre', data=None, **kwargs):
 cbook._check_in_list(('pre', 'post', 'mid'), where=where)
 kwargs['drawstyle'] = 'steps-' + where
 return self.plot(x, y, *args, data=data, **kwargs)

step函数签名:

matplotlib.pyplot.step(x, y, *args, where='pre', data=None, **kwargs)

step函数调用签名:

step(x, y, [fmt], *, data=None, where='pre', **kwargs)
step(x, y, [fmt], x2, y2, [fmt2], ..., *, where='pre', **kwargs)

其中:

  • x:类数组结构,一维x轴坐标序列。一般假设x轴坐标均匀递增。必备参数。
  • y:类数组结构,一维y轴坐标序列。必备参数。
  • fmt:格式字符串,与plot函数的fmt参数类似。可选参数。官方建议只设置颜色格式。
  • data:可索引数据,类似于plot函数。可选参数。
  • **kwargs:类似于plot函数。
  • where :设置阶梯所在位置,取值范围为{'pre', 'post', 'mid'},默认值为'pre'。

案例:使用step函数和plot函数演示不同where参数的效果

通过案例可知,step函数可以认为是plot函数绘制阶梯图的一个特例。

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(14)
y = np.sin(x / 2)

plt.figure(figsize=(12,5))
plt.subplot(121)
plt.step(x, y + 2, label='pre (default)')
plt.plot(x, y + 2, 'o--', color='grey', alpha=0.3)

plt.step(x, y + 1, where='mid', label='mid')
plt.plot(x, y + 1, 'o--', color='grey', alpha=0.3)

plt.step(x, y, where='post', label='post')
plt.plot(x, y, 'o--', color='grey', alpha=0.3)

plt.grid(axis='x', color='0.95')
plt.legend(title='Parameter where:')
plt.title('plt.step(where=...)')

plt.subplot(122)
plt.plot(x, y + 2, drawstyle='steps', label='steps (=steps-pre)')
plt.plot(x, y + 2, 'o--', color='grey', alpha=0.3)

plt.plot(x, y + 1, drawstyle='steps-mid', label='steps-mid')
plt.plot(x, y + 1, 'o--', color='grey', alpha=0.3)

plt.plot(x, y, drawstyle='steps-post', label='steps-post')
plt.plot(x, y, 'o--', color='grey', alpha=0.3)

plt.grid(axis='x', color='0.95')
plt.legend(title='Parameter drawstyle:')
plt.title('plt.plot(drawstyle=...)')
plt.show()

到此这篇关于matplotlib阶梯图的实现(step())的文章就介绍到这了,更多相关matplotlib 阶梯图内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • matplotlib绘制正余弦曲线图的实现

    序言: 在python里面,数据可视化是python的一个亮点.在python里面,数据可视可以达到什么样的效果,这当然与我们使用的库有关.python常常需要导入库,并不断调用方法,就很像一条流数据可视化的库,有很多,很多都可以后续开发,然后我们调用.了解过pyecharts美观的可视化界面 ,将pyecharts和matplotlib相对比一下. pyecharts和matplotlib的区别在哪里呢?Matplotlib是Python数据可视化库的泰斗,尽管已有十多年的历史,但仍然是Pyt

  • python使用matplotlib的savefig保存时图片保存不完整的问题

    python使用matplotlib的savefig保存时图片保存不完整的问题 使用如下形式的代码进行图片保存时,保存的图片出现不完整的情况,如图1所示. plt.colorbar() plt.savefig(title) plt.show() 一开始我以为是图片大小比例不对,因而通过以下代码进行修改: plt.figure(figsize=(10,8)) 但是无论怎么修改,始终会出现这种情况,要么是下面显示不完全,要么就是左边显示不完全.这是为什么呢? 这是因为colorbar会占据右边位置,

  • matplotlib源码解析标题实现(窗口标题,标题,子图标题不同之间的差异)

    在matplotlib中常用的标题主要三种:窗口标题.图像标题和子图标题. 先通过三个案例简要说明这三类标题的实现. 窗口标题.图像标题,子图标题(仅1个子图) import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = 'SimHei' fig = plt.figure() plt.plot([1, 2]) # 设置图像标题 plt.suptitle("这是图像标题") # 设置子图标题 plt.title(&q

  • matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解

    学习python的道路是漫长的,今天又遇到一个问题,所以想写下来自己的理解方便以后查看. 在使用matplotlib的过程中,常常会需要画很多图,但是好像并不能同时展示许多图.这是因为python可视化库matplotlib的显示模式默认为阻塞(block)模式.什么是阻塞模式那?我的理解就是在plt.show()之后,程序会暂停到那儿,并不会继续执行下去.如果需要继续执行程序,就要关闭图片.那如何展示动态图或多个窗口呢?这就要使用plt.ion()这个函数,使matplotlib的显示模式转换

  • matplotlib绘制多子图共享鼠标光标的方法示例

    matplotlib官方除了提供了鼠标十字光标的示例,还提供了同一图像内多子图共享光标的示例,其功能主要由widgets模块中的MultiCursor类提供支持. MultiCursor类与Cursor类参数类似,差异主要在: Cursor类参数只有一个ax,即需要显示光标的子图:MultiCursor类参数为canvas和axes,其中axes为需要共享光标的子图列表. Cursor类中,光标默认是十字线:MultiCursor类中,光标默认为竖线. 官方示例 import numpy as

  • matplotlib bar()实现多组数据并列柱状图通用简便创建方法

    在使用柱状图时,经常遇到需要多组数据进行比较的情况. 绘制单个数据系列的柱形图比较简单,多组数据柱状图绘制的关键有三点: 多次调用bar()函数即可在同一子图中绘制多组柱形图. 为了防止柱子重叠,每个柱子在x轴上的位置需要依次递增,如果柱子紧挨,这个距离即柱子宽度. 为了使刻度标签居中,需要调整x轴刻度标签的位置. 由上述可知,多组数据并列柱状图需要计算柱子x轴上的位置和x轴刻度标签. 因此,有两种实现方案: x轴刻度标签位置固定,根据x轴刻度计算每个柱子的宽度 每个柱子的宽度固定,计算x轴刻度

  • matplotlib制作雷达图报错ValueError的实现

    在教材实例编写雷达图时出现ValueError,具体如下: ValueError: The number of FixedLocator locations (7), usually from a call to set_ticks, does not match the number of ticklabels (6). 而原代码如下: import numpy as np import matplotlib.pyplot as plt import matplotlib matplotlib

  • 详解matplotlib绘图样式(style)初探

    样式是定义图表可视化外观的配置,它由一组预置的rcParams参数构成.matplotlib预置了一系列样式风格,可直接使用. 样式使用方法 样式相关模块为style. 1. 显示本机可用样式 matplotlib.style.available返回本机可用样式的列表. 列表只读,样式更新后,需要使用reload_library()重新加载样式. In [1]: import matplotlib.style as style In [2]: style.available Out[2]: ['

  • matplotlib更改窗口图标的方法示例

    matplotlib窗口图标默认是matplotlib的标志,如果想修改怎么改呢? 由于我选择的matplotlib后端是PyQT5,直接查看matplotlib.backends.backend_qt5模块源码. 原理 查看源码可知,窗口图标功能定义在FigureManagerQT类中,设置的默认图标是mpl-data\images\matplotlib.svg. FigureManagerQT的父类是FigureManagerBase,其功能是作为容器隔离matplotlib图像和后端实现的

  • Matplotlib animation模块实现动态图

    matplotlib 画图功能非常强大,目前也只能根据官网提供的例子简单地画几张图.最近学习了能画动态图的animation模块,作个简单地记录. 在matplotlib作图中,比较常用的是matplotlib.pyplot模块,这个模块有非常多的属性和方法,简要列举下这次用到的方法: matplotlib.pyplot.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gr

  • python学习之使用Matplotlib画实时的动态折线图的示例代码

    有时,为了方便看数据的变化情况,需要画一个动态图来看整体的变化情况.主要就是用Matplotlib库. 首先,说明plot函数的说明. plt.plot(x,y,format_string,**kwargs) x是x轴数据,y是y轴数据.x与y维度一定要对应. format_string控制曲线的格式字串 下面详细说明: color(c):线条颜色 linestyle(ls):线条样式 linewidth(lw):线的粗细 关于标记的一些参数: marker:标记样式 markeredgecol

随机推荐