matplotlib设置坐标轴标签和间距的实现

目录
  • xlim、ylim
  • xticks、yticks
  • 总结

我们今天继续matplotlib作图教程。

在上周的文章当中我们介绍了如何通过xlabel和ylabel设置坐标轴的名称,以及这两个函数的花式设置方法,可以设置出各种各样的名称显示方法。今天我们来介绍介绍其他的设置。

xlim、ylim

我们首先来介绍坐标轴的范围,坐标轴的范围很好理解,有的时候我们产出的数据的范围可能并不是完全我们想要的。如果我们不对坐标轴的范围进行设置的话,那么matplotlib默认会按照我们数据的范围来自动选择它认为最合适的区间来展示所有的数据。

举一个很简单的例子,假设我们想要在-10到10的区间里画一张抛物线的图像。这个图像的绘制方法我想大家应该都已经非常熟悉了:

由于x的范围是-10到10,那么y对应的范围应该就是[0, 100]。这些应该都不难理解,但是假如我们虽然数据非常全面是[-10, 10]这个范围内的,但是我们仅仅想要展示[-3, 3]这个区间,那应该怎么办?这个时候我们就可以使用xlim这个函数来设置x轴的范围,但是需要注意的是,我们在调用xlim的时候只是限制了x轴的结果,并没有限制y轴。所以画出来y轴的范围还是之前数据的范围,这样看起来会显得有一点奇怪,图像会是这样的:

解决的办法也很简单,就是再设置ylim的范围,将ylim的范围也设置到刚好可以比较合适地展示数据。比如在这个例子当中,ylim设置成[0, 30]或者是[-5, 25]都非常合适。

关于xlim和ylim官方还提供一些其他的参数,大家感兴趣可以查阅相关文档,建议大家没必要浪费这个时间,因为实在是用不到。甚至连用到xlim和ylim的情况都不多。

xticks、yticks

如果说前面xlim和ylim看起来有一种好像有点用,但是又不知道什么时候能用上的话,那么这一段要介绍的xtick和ytick就属于非常有用,不容错过的那种。这也不是我吹,因为和这两个函数比起来前面介绍的xlim和ylim真的就只是个弟弟。

xlim能够设置的基本上只有坐标轴的范围,而xticks和yticks既可以设置范围也可以设置每个刻度之间的间距。还用刚才抛物线的例子举例,在刚才的例子当中,我们x轴的范围是[-10, 10]。在默认的图像当中,系统帮我们选择的间距是2.5,即每隔2.5画一个坐标点,一共画8个。

而通过xticks我们可以自己设置坐标点的间隔以及数量,比如假设我们想要x轴每间隔5画一个坐标点,我们可以这么来设置:

我们直接在xticks当中放入了一个list,最后我们画出来的图像的x轴就是根据这个list进行划分的。也就是说我们不仅可以定义坐标轴的范围,还可以定义它的间隔。有的时候,自动绘制出来的图像的范围以及间隔可能没有那么好,需要我们进行调整,这时候就需要用到xticks和yticks函数了。

除了设置间隔和范围之外,xticks还可以设置标签以及标签的旋转角度。我们同样来看一个例子,在这个例子当中,我们会把上图当中x轴的数字转成英文单词,并且将这些单词旋转30度。

我们生活当中经常看到的一种图表就是某公司的业绩销售表,或者是增长曲线表。这种表都有一个特点,就是它的x轴是月份,这样我们就可以很清楚地看到每个月的销售数据,可以对未来进行预期以及指引。在没有学会xticks函数用法之前,可能会觉得这是非常不容易的一件事,但有了xticks之后其实非常地简单:

现在如果老板让你去做一张月度数据报表,你应该知道怎么做了吧?可以不用再用Excel了,用matplotlib几行代码就搞定了。这也是现在各大培训班广告里吹嘘的内容,你看我已经免费教给你了。

总结

我们简单回顾一下今天介绍的内容,一个是用来限制坐标轴范围的xlim和ylim,另外一个是可以自定义整个坐标轴间隔以及范围,甚至还可以更换名称的xticks、yticks。从表面上来看xlim能做的事情xticks也都可以实现,但实际上这两者的应用场景其实是不同的,xlim的使用场景是当我们想要放大或者缩小图像的时候,使用xlim只需要传入上下界,而如果使用xticks则还需要指定间隔、生成一个list才可以,其实是有些冗余的操作。

所以这两者的应用有重叠的部分,但是应用场景其实还是不一样的。当然如果你想要偷懒只想学一个的话,那么xticks的确已经足够了。

(0)

相关推荐

  • Matplotlib控制坐标轴刻度间距与标签实例代码

    目录 前言 控制刻度间距 控制刻度标签 更简单的设置方式 高级刻度标签控制 总结 前言 我们首先来介绍坐标轴的范围,坐标轴的范围很好理解,有的时候我们产出的数据的范围可能并不是完全我们想要的. 如果我们不对坐标轴的范围进行设置的话,那么matplotlib默认会按照我们数据的范围来自动选择它认为最合适的区间来展示所有的数据. 控制刻度间距 目前为止,我们让Matplotlib自动处理刻度在坐标轴上的位置,但有时我们需要覆盖默认的坐标轴刻度配置,以便更加快速估计图形中点的坐标. import nu

  • matplotlib设置坐标轴标签和间距的实现

    目录 xlim.ylim xticks.yticks 总结 我们今天继续matplotlib作图教程. 在上周的文章当中我们介绍了如何通过xlabel和ylabel设置坐标轴的名称,以及这两个函数的花式设置方法,可以设置出各种各样的名称显示方法.今天我们来介绍介绍其他的设置. xlim.ylim 我们首先来介绍坐标轴的范围,坐标轴的范围很好理解,有的时候我们产出的数据的范围可能并不是完全我们想要的.如果我们不对坐标轴的范围进行设置的话,那么matplotlib默认会按照我们数据的范围来自动选择它

  • matplotlib如何设置坐标轴刻度的个数及标签的方法总结

    第一种方式: 通过pyplot进行设置,通过pyplot下的xticks进行设置,这个api的原型如下: matplotlib.pyplot.xticks(ticks=None, labels=None, **kwargs) ticks:array-like, optional 表示xtick 位置列表,传递一个空列表会删除所有 xticks. labels:array-like, optional 要放置在给定刻度ticks位置的标签.仅当也传递刻度ticks时才能传递此参数. 其他常用的参数

  • matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())

    在pyplot模块中可以使用xlabel()和ylabel()函数设置x轴y轴的标签.这两个函数的使用方法非常相似. 使用xlabel()设置x轴标签 函数签名为matplotlib.pyplot.xlabel(xlabel, fontdict=None, labelpad=None, *, loc=None, **kwargs) 参数作用及取值如下: xlabel:类型为字符串,即标签的文本. labelpad:类型为浮点数,默认值为None,即标签与坐标轴的距离. loc:取值范围为{'le

  • 学习python中matplotlib绘图设置坐标轴刻度、文本

    总结matplotlib绘图如何设置坐标轴刻度大小和刻度. 上代码: from pylab import * from matplotlib.ticker import MultipleLocator, FormatStrFormatter xmajorLocator = MultipleLocator(20) #将x主刻度标签设置为20的倍数 xmajorFormatter = FormatStrFormatter('%1.1f') #设置x轴标签文本的格式 xminorLocator = M

  • Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度

    前言 matplotlib.pyplot是一些命令行风格函数的集合,使matplotlib以类似于MATLAB的方式工作.每个pyplot函数对一幅图片(figure)做一些改动:比如创建新图片,在图片创建一个新的作图区域(plotting area),在一个作图区域内画直线,给图添加标签(label)等.matplotlib.pyplot是有状态的,亦即它会保存当前图片和作图区域的状态,新的作图函数会作用在当前图片的状态基础之上. 在开始本文之前,不熟悉的朋友可以先看看这篇文章:Python

  • python matplotlib画盒图、子图解决坐标轴标签重叠的问题

    在使用matplotlib画图的时候将常会出现坐标轴的标签太长而出现重叠的现象,本文主要通过自身测过好用的解决办法进行展示,希望也能帮到大家,原图出现重叠现象例如图1: 代码为: data1=[[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765],[0.3765,0.3765,0.3765,0.3765,0.3765]] data

  • Pandas Matplotlib保存图形时坐标轴标签太长导致显示不全问题的解决

    目录 前言 1. 问题描述 2. 问题原因 4. 解决方法 结束语 前言 本篇博客主要解决在使用pandas绘制图像并保存时,由于标签太长,导致坐标轴上的标签显示不全的问题.刚遇到问题时调整了一下图片大小,然鹅并没有卵用,于是乎就检索了一下问题,发现没有解决pandas的.查询无果后,查看了一下官方文档,顿悟,这不就是matplotlib嘛,换了一个关键字再查询,果然,就是.所以本篇同样适用于解决matplotlib绘制图像时出现的这个问题. # 部分代码 df_sparsity = disti

  • Python数据分析matplotlib设置多个子图的间距方法

    注意,要看懂这里,必须具备简单的Python数据分析知识,必须知道matplotlib的简单使用! 例1: plt.subplot(221) # 第一行的左图 plt.subplot(222) # 第一行的右图 plt.subplot(212) # 第二整行 plt.title('xxx') plt.tight_layout() #设置默认的间距 例2: for i in range(25): plt.subplot(5,5,i+1) plt.tight_layout() 例3: # 设定画图板

  • Python绘图Matplotlib之坐标轴及刻度总结

    学习https://matplotlib.org/gallery/index.html 记录,描述不一定准确,具体请参考官网 Matplotlib使用总结图 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号 import pandas as pd import nump

随机推荐