(matplotlib)如何将x轴或者y轴刻度显示到小数点后1位或者后若干位

文章目录

      • 背景
      • 解决办法

背景

import numpy as np
import matplotlib.pyplot as plt

这个问题乍一看好像很简单,使用xticks或者yticks不就行了吗,想几位小数就几位小数,例如

plt.xticks([5.0,7.0,2.0])

如果你是这样想,那你就太天真了,看下面的例子:

x=[1,2,3]
y=[5.0,7.0,2.0]
plt.plot(x,y)
plt.yticks(y)

我问你,画出来的图真的会是一位小数吗?请看下图:
(matplotlib)如何将x轴或者y轴刻度显示到小数点后1位或者后若干位_第1张图片

解决办法

可以发现,yticks并不是所见即所得,除非你的刻度的小数位非0(只要有一个刻度就行),例如下面5.1非0:

x=[1,2,3]
y=[5.1,7.0,2.0]
plt.plot(x,y)
plt.yticks(y)

(matplotlib)如何将x轴或者y轴刻度显示到小数点后1位或者后若干位_第2张图片

那如果我们就是为了统一格式,必须小数点后一位呢?这个时候我们要拿出大杀器,一个所见即所得的东西,yticks不是所见即所得,但是参数labels可以使之达到这个目的,看招:

x=[1,2,3]
y=[5.0,7.0,2.0]
plt.plot(x,y)
plt.yticks(y,labels=y)#labels是精髓。
plt.show()

(matplotlib)如何将x轴或者y轴刻度显示到小数点后1位或者后若干位_第3张图片
可以看到,刻度会完全展示labels里面的东西,labels里面是几位小数,那么刻度就是几位。

你学费了吗?

你可能感兴趣的:(数据分析,matplotlib)